随笔分类 -  刷题

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页
摘要:动态规划可以解 阅读全文
posted @ 2018-09-15 13:39 有梦就要去实现他 阅读(86) 评论(0) 推荐(0)
摘要:class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot == NULL) return 0; int depth,left,right; left = TreeDepth(pRoot->left); righ... 阅读全文
posted @ 2018-09-14 10:19 有梦就要去实现他 阅读(80) 评论(0) 推荐(0)
摘要:int maxProduct(int length){ if(length < 2) return 0; if(length = 2) return 1; if(length = 3) return 2; int numof3 = length/3; if(length - numof3*3 == 1... 阅读全文
posted @ 2018-09-14 10:11 有梦就要去实现他 阅读(97) 评论(0) 推荐(0)
摘要:注意multiset的一个bug: multiset带一个参数的erase函数原型有两种。一是传递一个元素值,如上面例子代码中,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数;另外一种是传递一个指向某个元素的iterator,这时候删除的就是这个对应的元素,无返回值。 https 阅读全文
posted @ 2018-09-14 09:37 有梦就要去实现他 阅读(188) 评论(0) 推荐(0)
摘要:https://blog.csdn.net/otuhacker/article/details/10366563 每次是小数的最后一个,然后用的next位置进行的交换,如果第二个数比第一个数小,就相当于第二数和自己进行交换 链表只能从前往后 阅读全文
posted @ 2018-09-13 21:38 有梦就要去实现他 阅读(1789) 评论(0) 推荐(0)
摘要:九章算法 最大子数组差 阅读全文
posted @ 2018-09-01 00:15 有梦就要去实现他 阅读(84) 评论(0) 推荐(0)
摘要:1.2的幂 正确写法: 错误写法1: &符号的短路原则,如果&前面为false了就不会计算后面的了 错误写法2 ==符号的优先级比&高 2.4的幂 3.3的幂 https://blog.csdn.net/u014218090/article/details/80152446 阅读全文
posted @ 2018-08-31 23:11 有梦就要去实现他 阅读(170) 评论(0) 推荐(0)
摘要:Longest Increasing Subsequence 最长递增子序列 子序列不是数组中连续的数。 dp表达的意思是以i结尾的最长子序列,而不是前i个数字的最长子序列。 初始化是dp所有的都为1,最终的结果是求dp所有的数值的最大值。 674. Longest Continuous Incre 阅读全文
posted @ 2018-08-31 18:43 有梦就要去实现他 阅读(152) 评论(0) 推荐(0)
摘要:这个题是从左上角到右下角的路径和最小,实际就是一道dp题。 第一种写法是只初始化(0,0)位置,第二种写法则是把第一行、第一列都初始化了。个人更喜欢第二种写法,简单一点。 dp的右下角的值就为最终的值 第一种写法: 第二种写法: 阅读全文
posted @ 2018-08-31 18:01 有梦就要去实现他 阅读(137) 评论(0) 推荐(0)
摘要:class Solution { public: bool isValid(string s) { stack result; for(char c:s){ if(c == '(' || c == '[' || c == '{') result.push(c); else{... 阅读全文
posted @ 2018-08-30 22:24 有梦就要去实现他 阅读(271) 评论(0) 推荐(0)
摘要:121. Best Time to Buy and Sell Stock 题目的要求是只买卖一次,买的价格越低,卖的价格越高,肯定收益就越大 遍历整个数组,维护一个当前位置之前最低的买入价格,然后每次计算当前位置价格与之前最低价格的差值,获得最大差值即为结果 122.Best Time to Buy 阅读全文
posted @ 2018-08-30 17:43 有梦就要去实现他 阅读(279) 评论(0) 推荐(0)
摘要:这种题要分两步,第一步是“插空儿”,第二步是“筛” 1.rand7生成rand10 只要是10的倍数就好 概率计算: https://blog.csdn.net/excellentlizhensbfhw/article/details/81174138 再将这49个数分为两部分, {0, 1, 2, 阅读全文
posted @ 2018-08-30 17:19 有梦就要去实现他 阅读(2706) 评论(0) 推荐(0)
摘要:1.two sum 用hash来存储数值和对应的位置索引,通过target-当前值来获得需要的值,然后再hash中寻找 错误代码1: Input:[3,2,4]6Output:[0,0]Expected:[1,2] 同一个数字不能重复使用,但这个代码没排除这个问题 错误代码2: Input:[3,3 阅读全文
posted @ 2018-08-29 20:21 有梦就要去实现他 阅读(177) 评论(0) 推荐(0)
摘要:1.这个通过partition实现topk,时间复杂度是o(logn*logn),也就是0(n),但需要修改原数组的顺序 下面这个代码本身有一些错误,并且throw excption会在牛客上报错 正确代码 2.用大根堆的做法的时间复杂度是o(nlogk) 阅读全文
posted @ 2018-08-25 21:39 有梦就要去实现他 阅读(347) 评论(0) 推荐(0)
摘要:1.二叉平衡树:左子树和右子树的深度差小于等于1 2.二叉搜索树:左子树小于根节点的值,右子树大于根结点的值 3.队列:push(),pop(),front(),back(),empty(),size() 4.vecotr: clear(),push_back(),pop_back() vector 阅读全文
posted @ 2018-08-22 21:01 有梦就要去实现他 阅读(423) 评论(0) 推荐(0)
摘要:牛客网上的题目还有一个额外的要求,就是不改变数组原始的前后数据,这种可以用队列来存储,或者把前后比较变为相邻的元素比较。 这个题目,主要要考察扩展性,用func函数就实现了扩展性。只需要改func函数,就可以实现负数移动到非负数前面,被3整除的数移到不能被3整除的数的前面 这个题主要是将数组前后进行 阅读全文
posted @ 2018-08-22 19:31 有梦就要去实现他 阅读(99) 评论(0) 推荐(0)
摘要:对于几进制,其实主要就是对进制取余和整除,取余的结果就是当前位的,整除的结果就是进位的。 67. Add Binary https://www.cnblogs.com/grandyang/p/4084971.html 从两个string的末尾开始转int型相加,注意carry的计算。 如果某一个数少 阅读全文
posted @ 2018-08-12 20:21 有梦就要去实现他 阅读(142) 评论(0) 推荐(0)
摘要:144. Binary Tree Preorder Traversal 前序的非递归遍历:用堆来实现 如果把这个代码改成先向堆存储左节点再存储右节点,就变成了每一行从右向左打印 如果用队列替代堆,并且先存储左节点,再存储右节点,就变成了逐行打印 94. Binary Tree Inorder Tra 阅读全文
posted @ 2018-08-12 17:03 有梦就要去实现他 阅读(187) 评论(0) 推荐(0)
摘要:第一题是输入数组的数值不相同,第二题是输入数组的数值有相同的值,第二题在第一题的基础上需要过滤掉那些相同的数值。 level代表的是需要进行选择的数值的位置。 78. Subsets 错误解法: 如果只看代码本身,不看继续的递归,整个for循环执行完成是同一层的所有节点。 level是同一层初始的开 阅读全文
posted @ 2018-08-12 16:57 有梦就要去实现他 阅读(124) 评论(0) 推荐(0)
摘要:53. Maximum Subarray 之前的值小于0就不加了。dp[i]表示以i结尾当前的最大和,所以需要用一个变量保存最大值。 动态规划的方法: 152. Maximum Product Subarray 最小值可能是负数,这个值可能变成最大值。 dp[i]表示以i结尾当前的最大乘积,所以需要 阅读全文
posted @ 2018-08-12 15:56 有梦就要去实现他 阅读(120) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 11 12 下一页