随笔分类 -  problems

上一页 1 2 3 4 5 6 下一页

leetcode 349. Intersection of Two Arrays
摘要:找出两个数组相同的元素。返回相同的元素集合即可。 两个思路: 1. 先将num1转为集合set1(去重),再遍历num2,查找set1中有没有出现。 2. 哈希,用两个unordered_map<int, bool>,再遍历即可。 这里用方法2: 阅读全文

posted @ 2018-02-09 12:14 willaty 阅读(106) 评论(0) 推荐(0)

leetcode 345. Reverse Vowels of a String
摘要:string reverseVowels(string s) { for (int i = 0, j = s.size() - 1; i < j;) { bool l = isVowels(s[i]); bool r = isVowels(s[j]); if (l && r) ... 阅读全文

posted @ 2018-02-08 15:45 willaty 阅读(104) 评论(0) 推荐(0)

leetcode 344. Reverse String
摘要:string reverseString(string s) { int size = (s.size() >> 1); for (int i = 0; i < size; i++) { swap(s[i], s[s.size() - i - 1]); } return move(s); } ... 阅读全文

posted @ 2018-02-08 15:37 willaty 阅读(82) 评论(0) 推荐(0)

leetcode 342. Power of Four
摘要:没想出来不用循环的。记录下。 如果是2的次方,必有num & (nums - 1) 或者第二步排除,直接(num - 1) % 3为0也可以,如果是4的倍数,减1后必能被3整除,从二进制角度考虑下即可。 不建议用对数,涉及浮点数,精度问题,见:https://discuss.leetcode.com 阅读全文

posted @ 2018-02-08 15:27 willaty 阅读(93) 评论(0) 推荐(0)

leetcode 326. Power of Three
摘要:判断是否是3的次方。 找了下二进制和十进制规律,没有明显规律。 要么对数;要么利用int下最大3的次方:哈希或整除。 阅读全文

posted @ 2018-02-08 14:59 willaty 阅读(93) 评论(0) 推荐(0)

leetcode 303. Range Sum Query - Immutable
摘要:关键在于,想出类似最大子数组和中的一种解法。 缓存每个数前的所有和,需要的时候,减一下即可。 阅读全文

posted @ 2018-02-08 14:42 willaty 阅读(86) 评论(0) 推荐(0)

leetcode 292. Nim Game
摘要:博弈论经典。 阅读全文

posted @ 2018-02-08 14:19 willaty 阅读(93) 评论(0) 推荐(0)

leetcode 290. Word Pattern
摘要:普通的做法就是两个哈希。 这里用了一点小技巧,比如a和b双射,不相互保存,而是都保存一个数字,之后每次增加映射,数字都增加1。 节省空间用。 阅读全文

posted @ 2018-02-08 14:15 willaty 阅读(101) 评论(0) 推荐(0)

leetcode 278. First Bad Version
摘要:int firstBadVersion(int n) { // long start = 1; // long end = n; int start = 1; int end = n; int last = -1; while (start <= end) { ... 阅读全文

posted @ 2018-02-08 11:55 willaty 阅读(100) 评论(0) 推荐(0)

leetcode 283. Move Zeroes
摘要:第一次写的代码,实际效率是O(n)的,但判断多了一点。 其实可以很简洁: 阅读全文

posted @ 2018-02-08 10:58 willaty 阅读(106) 评论(0) 推荐(0)

leetcode 268. Missing Number
摘要:原地哈希。代码没怎么优化,思路清晰。 阅读全文

posted @ 2018-02-08 09:54 willaty 阅读(99) 评论(0) 推荐(0)

leetcode 263. Ugly Number
摘要:bool isUgly(int num) { while (num < 1) return false; while (num % 2 == 0) num /= 2; while (num % 3 == 0) num /= 3; while (num %... 阅读全文

posted @ 2018-02-07 15:00 willaty 阅读(81) 评论(0) 推荐(0)

leetcode 258. Add Digits
摘要:给个整数,每位相加,如果位数大于1,重复,知道剩一位。 附加要求:要求不用递归循环,O(1)。 看到这要求,肯定有规律: - D,从10开始推,一下子就看出来了。 阅读全文

posted @ 2018-02-07 14:09 willaty 阅读(93) 评论(0) 推荐(0)

leetcode 257. Binary Tree Paths
摘要:返回所有根到叶子的路径。用个“全局”的ret代替合的过程。 阅读全文

posted @ 2018-02-07 13:29 willaty 阅读(81) 评论(0) 推荐(0)

leetcode 242. Valid Anagram
摘要:哈希。 阅读全文

posted @ 2018-02-07 11:15 willaty 阅读(103) 评论(0) 推荐(0)

leetcode 237. Delete Node in a Linked List
摘要:由于题目已经限定范围,直接覆盖即可。 阅读全文

posted @ 2018-02-06 17:18 willaty 阅读(89) 评论(0) 推荐(0)

leetcode 234. Palindrome Linked List
摘要:快慢指针找到中点,反转后半段,比较。 其实慢指针走的时候就可以开始反转。 阅读全文

posted @ 2018-02-06 14:20 willaty 阅读(110) 评论(0) 推荐(0)

leetcode 232. Implement Queue using Stacks
摘要:class MyQueue { public: /** Initialize your data structure here. */ stack r, b; MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { ... 阅读全文

posted @ 2018-02-06 13:12 willaty 阅读(86) 评论(0) 推荐(0)

leetcode 231. Power of Two
摘要:bool isPowerOfTwo(int n) { if (n < 1) return false; int m = 1; for (int i = 0; i < 32; i++) { int j = n & m; if (j == n) return tru... 阅读全文

posted @ 2018-02-06 11:50 willaty 阅读(75) 评论(0) 推荐(0)

leetcode 226. Invert Binary Tree
摘要:TreeNode* invertTree(TreeNode* root) { if (root == NULL) return NULL; auto temp = root->left; root->left = root->right; root->right = temp; invert... 阅读全文

posted @ 2018-02-06 11:27 willaty 阅读(82) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 下一页

导航