LeetCode
hjlovecl
这个作者很懒,什么都没留下…
展开
-
Leetcode Longest Substring Without Repeating Characters
有几点需要向面试官问清楚: 1. 是26个字母还是ascii字符 2. 是否区分大小写 解题思路:开一个长度为256的数组记录每一个字符出现的位置,如果出现重复就把字符串起始位置设置成i+1, 并计算当前字符串的长度,和max进行比较,保留最大值。 别忘记最后一个字符串末尾还要比较一次。 可能的follow up: 如果每个字符允许出现两次,如何求解,大致思路相同,记录两个位置。原创 2014-12-18 13:24:31 · 304 阅读 · 0 评论 -
Leetcode Letter Combinations of a Phone Number
深搜 string keys [10] = {" ", "", "abc", "def", "ghi", "jkl", "mno", "pqrs","tuv", "wxyz"}; void dfs(vector &result, str原创 2014-12-22 10:34:37 · 243 阅读 · 0 评论 -
Leetcode Majority Element
感觉Leetcode出书了以后judge速度快了不少,但是新出的题目质量不大好 Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times. You may assume that the原创 2014-12-22 10:39:03 · 520 阅读 · 0 评论 -
Single Number II
位运算原创 2014-12-22 11:42:33 · 225 阅读 · 0 评论 -
Leetcode Swap Nodes in Pairs
ListNode *swapPairs(ListNode *head) { ListNode dummy(-1); dummy.next = head; ListNode *cur = head; ListNode *prev = &dummy; ListNode *p; while(prev -> n原创 2014-12-30 13:43:55 · 270 阅读 · 0 评论 -
Leetcode First Missing Positive
int firstMissingPositive(int A[], int n) { for(int i = 0; i < n;){ if(A[i] != i+1 && A[i] = 1 && A[A[i]-1] != A[i]) swap(A[i], A[A[i]-1]); else i++; } f原创 2014-12-31 14:13:45 · 191 阅读 · 0 评论 -
Leetcode Trapping Rain Water
水的高度又左右两边高度最大值的较小值决定,从左到右扫描一次,从右到左扫描一次 int trap(int A[], int n) { vector left(n,0); vector right(n,0); int i, maxx = 0; for(i = 0; i < n; i++) left[i]原创 2014-12-31 14:31:18 · 233 阅读 · 0 评论 -
Leetcode Pascal's Triangle
vector > generate(int numRows) { vector > result; for(int i = 0; i < numRows; i++){ vector next(i+1,1); for(int j = 1; j < i; j++){ next[j] = re原创 2014-12-31 14:43:41 · 217 阅读 · 0 评论 -
Leetcode Climbing Stairs
int climbStairs(int n) { int i = 1; int cur = 1, prev = 1, temp; while(i < n){ temp = cur; cur += prev; prev = temp; i++;原创 2015-01-02 12:32:13 · 200 阅读 · 0 评论 -
Leetcode 3Sum Closest
和3Sum没什么区别,记录最小gap int threeSumClosest(vector &num, int target) { int b, c, n = num.size(); int sum = num[0] + num[1] + num[2]; sort(num.begin(), num.end()); i原创 2014-12-22 10:08:10 · 264 阅读 · 0 评论 -
Leetcode 3Sum
这题难度主要在如何避免重复上, 我们假设三个数的index分别为a, b, c 以下几种情况可能导致重复的产生 1. 第一个数导致的重复,num[a] == num[a-1], 后面相同的b,c的组合会导致答案重复一遍 2. 第二个数和第三个数导致的重复,重复只发生在找到一个答案以后,所以只需要确认b++,c--到一个不同的数就可以了原创 2014-12-22 09:13:29 · 532 阅读 · 0 评论 -
Leetcode Single Number
int singleNumber(int A[], int n) { int ans = 0; for(int i = 0 ; i < n; i++){ ans ^= A[i]; } return ans; }原创 2014-12-22 11:35:05 · 200 阅读 · 0 评论 -
Leetcode Longest Palindromic Substring
以每个元素为中心点往两边找回文,这一题用dp并不方便。 有奇数长度和偶数长度两种情况原创 2014-12-18 14:45:37 · 303 阅读 · 0 评论 -
Leetcode Reverse Integer
OJ要求溢出返回0而不是溢出的数,不错一次咋能知道要求是0。。。。 int reverse(int x) { const int MAX = 0x7FFFFFFF; bool negative = x < 0; if (negative) x = -x; long long ans = 0;原创 2014-12-18 09:14:36 · 198 阅读 · 0 评论 -
Leetcode ZigZag Conversion
Leetcode ZigZag Conversion原创 2014-12-19 08:07:14 · 265 阅读 · 0 评论 -
Leetcode Container with Most Water
左右夹逼,每一次都挪动较短的板子 int maxArea(vector &height) { int i = 0, j = height.size()-1; int maxx = 0; int temp = 0; // assume no overflow while(i < j)原创 2014-12-19 12:43:03 · 290 阅读 · 0 评论 -
Leetcode Roman to Integer
用了一下template来打表原创 2014-12-21 15:41:36 · 517 阅读 · 0 评论 -
Leetcode Integer to Roman
int indexOf(char ROMAN[7], char c){ for(int i = 0; i < 7; i++){ if(ROMAN[i] == c) return i; } return 0; } string intToRoman(int num) {原创 2014-12-19 13:53:41 · 238 阅读 · 0 评论 -
Leetcode String to Integer (atoi)
1. 如果输入不合法,输出0 2. 正负判断 3. 溢出输出INT_MAX or INT_MIN 4. 忽略最后的字母原创 2014-12-19 12:19:29 · 204 阅读 · 0 评论 -
Leetcode Longest Common Prefix
对c++太不熟悉了,判断是否输入valid错了好几次,没想到优于O(mn)的方法原创 2014-12-21 16:01:19 · 282 阅读 · 0 评论 -
Leetcode Rotate Image
void rotate(vector > &matrix) { // flip diagnal int n = matrix.size(), i , j; for(i = 0; i < n-1; i++) for(j = 0; j < n-1-i; j++) swap(matrix[i][j],原创 2015-01-02 12:25:36 · 306 阅读 · 0 评论