12 2017 档案

摘要:题目描述: 风口之下,猪都能飞。当今中国股市牛市,真可谓“错过等七年”。 给你一个回顾历史的机会,已知一支股票连续n天的价格走势,以长度为n的整数数组表示,数组中第i个元素(prices[i])代表该股票第i天的股价。 假设你一开始没有股票,但有至多两次买入1股而后卖出1股的机会,并且买入前一定要先 阅读全文
posted @ 2017-12-22 17:30 光彩照人 阅读(222) 评论(0) 推荐(0) 编辑
摘要:这种方法速度比较快,其运算次数与输入n的大小无关,只与n中1的个数有关。如果n的二进制表示中有k个1,那么这个方法只需要循环k次即可。 其原理是不断清除n的二进制表示中最右边的1,同时计数器加1,直至n为0。 对于int 型32位的呢 int型32位表示范围为-2^31~2^31-1,最高位表示符号 阅读全文
posted @ 2017-12-22 15:28 光彩照人 阅读(544) 评论(0) 推荐(0) 编辑
摘要:ord('0')=48,ord('A')=65,ord('a')=97chr(65)='A' def str2Int(s): s=s.strip() if len(s)==0: return 0 dict_flag={'+':1,'-':-1} sum_,flag=0,1 if s[0] in di 阅读全文
posted @ 2017-12-21 16:51 光彩照人 阅读(1386) 评论(0) 推荐(0) 编辑
摘要:一、根据正则表达式替换字符串 二、re.split() 可以使用re.split来分割字符串,如:re.split(r'\s+', text);将字符串按空格分割成一个单词列表。 三、re.findall re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'\w*oo 阅读全文
posted @ 2017-12-21 14:22 光彩照人 阅读(254) 评论(0) 推荐(0) 编辑
摘要:思路分解: 1.如果两个数的二级制逻辑与后为0,则可以世界利用或运算进行对应位相加,例如3+4=011+100=111=7 2.如果两个数的二进制逻辑与后不为0,怎进行转换,先逻辑异或运算,得到个位数,在逻辑与并进行移位操作。 3.直到两个数逻辑与后为0为止,然后进行逻辑或相加即可。 阅读全文
posted @ 2017-12-20 17:29 光彩照人 阅读(340) 评论(0) 推荐(0) 编辑
摘要:1.输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 思路:该方法为O(n)时间复杂度,非常巧妙,思路值得借鉴。设置两个指针,一个指向最左端,一个指向最右边,如果左端数值+右端数值等于S,则此时两个数乘积最小,两个数的距 阅读全文
posted @ 2017-12-20 14:12 光彩照人 阅读(449) 评论(0) 推荐(0) 编辑
摘要:递归二分查找 非递归二分查找 带重复元素的有序数组返回查找元素第一次出现的位置 阅读全文
posted @ 2017-12-19 14:12 光彩照人 阅读(232) 评论(0) 推荐(0) 编辑
摘要:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?(子向量的长度至少是1)最优方法,时间复杂度O(n),和最大的子序列的第一个元素肯定是正数 ,因为元素有正有负,因此子序列的最大和一定大于0 def FindGreatestSumOfSubArray(self, array): maxVal=array[0] ... 阅读全文
posted @ 2017-12-18 14:49 光彩照人 阅读(153) 评论(0) 推荐(0) 编辑
摘要:一、构建与遍历二叉树 基本性质 1)在二叉树的第i层上最多有2i-1 个节点 。(i>=1)2)二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)3)在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[log2n]是向下取整。向下取整就是小数点后面的数字无论多少,都只 阅读全文
posted @ 2017-12-13 15:28 光彩照人 阅读(946) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示