上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页
摘要: 思路1. 经典解法是用环形链表模拟圆圈, 然后每次减少一个节点. 时间复杂度为 o(mn), 空间复杂度为 o(n)2. 转化成数学问题, 递推公式决定下一个元素. 时间复杂度为 o(n), 空间复杂度为 o(1) 阅读全文
posted @ 2014-02-24 00:31 SangS 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 题目100 可以由9~16, 或者 18 ~ 22 组成思路1. 与 LeetcodeContainer With Most Water 有些类似, 依然是平移题目. 但这道更加复杂2. 初始设置 small 为 1, big 为 2 ,然后平移直到等于目标值. 到 small >= big 时结束 阅读全文
posted @ 2014-02-24 00:28 SangS 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 题目1. 翻转单词student. a am I 转换成I am a student.2. 字符串左旋abba 1 转成bbaa总结1. 先对每个单词旋转, 再整齐旋转2. 先翻转一半, 再全部旋转3. 这类似看过多次了, 考研数据结构部分算法题 阅读全文
posted @ 2014-02-24 00:19 SangS 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字思路1. 思路是先将数组分成两个部分, 两个单个数字分别分到两部分中, 并且数组中其他数字都成对.2. 具体的做法是所有的数字亦或一遍, 结果肯定有某一位为 1 , 那么以该位是否为 1 为标准将数组分成两组即可 阅读全文
posted @ 2014-02-24 00:04 SangS 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 总结1. 书上给出一个简洁代码, 说是会重复遍历.2. 框架相同, 可以写出下面的代码class Solution {public: bool ans; int getHeight(TreeNode *root) { if(!ans) return 0; if(root == NULL) return 0; int lt = 0, rt = 0; if(root->left&&ans) { lt = 1+getHeight(root->left); } if(root->right&&ans) rt = 1 + getHeight(root-& 阅读全文
posted @ 2014-02-23 23:48 SangS 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 总结1. Leetcode 上有一道题, 求某一个数字在有序数组中出现的最左位置和最右位置, 而这道题就是那题的变形 阅读全文
posted @ 2014-02-23 23:31 SangS 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目描述:在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符思路:1. 给定的题目约束比较多, 因此可以自定义哈希函数2. 字符是一个长度为 8 的数据类型, 因此总共有 256 个可能, 因此我们可以创建一个长度为 256 的数组, 每一个下标代表一个 char, 而数组元素代表该字符出现的次数 阅读全文
posted @ 2014-02-23 23:27 SangS 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 总结1. 假设 n == 2212, 算法分为两个步骤. 第一步, 将这个 2212 个数分为 1~ 212, 213 ~ 22122. 第一部分实际上是将 n 的规模缩小到 212. 假如知道如何求解 n = 2212, n = 212 就肯定也能求出3. 第二部分可以再分为 3 个小步骤 3.1 求解 213~2212 最高位上 1 的个数, 1000~1999, 共 1000 个 3.2 假如 n = 1212, 最高位上 1 的个数就是 213 个, 因为最高位上 1 个个数需要根据最高位上的值来讨论 3.3 计算后三位 1 出现的次数. 书上是这么描述的, 将某一位设置成 1,... 阅读全文
posted @ 2014-02-23 15:26 SangS 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 总结1. 给定 3, 32, 321 将他们组合成最小的数, 比如 3213232. 3 -> 333 32 -> 322 321 -> 321然后再排序 阅读全文
posted @ 2014-02-22 23:52 SangS 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 总结1. 假如允许修改给定数组, 那么通过快排的子过程, 可以在o(n) 时间复杂度内得出结果.2. 对于海量数据和不允许修改的数据, 通过最小堆的方式更好, 通过维持一个大小为 K 的最小堆 阅读全文
posted @ 2014-02-22 23:49 SangS 阅读(131) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 31 下一页