自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leetcodecl

leetcode刷题进步

  • 博客(85)
  • 收藏
  • 关注

原创 237. Delete Node in a Linked List

删除一节点,且在链表中只有针对该节点的访问权:方法为删除该节点的下一个节点,并将下一节点的val赋给当前节点 void deleteNode(ListNode* node) { node->val=node->next->val; node->next=node->next->next; } ...

2018-03-31 23:03:21 77

原创 392. Is Subsequence

判断S是否是T的一部分:1) 若s.size()>t.size(),则return false;2) 否则,从s和t首部开始遍历,若对应位置的字符相等,则s,t下标同时后移一位;否则,t下标后移一位class Solution {public: bool isSubsequence(string s, string t) { if(s.size()> t.si...

2018-03-30 19:23:43 80

原创 409. Longest Palindrome

统计字符串中字符可构成回文字符串的最大长度int longestPalindrome(string s) { unordered_map<char, int> table; for (int i = 0; i<s.size(); i++) { if (table.find(s[i]) == table.end()) // not found table[s[i]...

2018-03-30 16:56:24 82

原创 347. Top K Frequent Elements

class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { vector<int> ans; unordered_map<int,int> tab...

2018-03-29 23:36:26 77

原创 172. Factorial Trailing Zeroes

判断n的阶乘里有多少个0:class Solution {public: int trailingZeroes(int n) { int ans=0; while(n) { n /= 5; ans += n; } return ans; }};...

2018-03-29 19:54:55 95

原创 63. Unique Paths II

动态规划:F[i][j]=F[i-1]+F[i][j-1](F[i][j]=0,when grid[i][j]==1)class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& grid) { int ans[100][100]={0}; ...

2018-03-26 15:38:11 77

原创 64. Minimum Path Sum

寻找从左上角到右下角的最短路劲:F(i,j)=min{arr(i,j)+f(i-1,j),arr(i,j)+f(i,j-1)}class Solution {public: int minPathSum(vector<vector<int>>& grid) { for(int i=0;i<grid.size();i++) {...

2018-03-26 12:32:04 80

原创 62. Unique Paths

动态规划:F[i][j]=F[i-1]+F[i][j-1]class Solution {public: int uniquePaths(int m, int n) { int res[100][100]={0}; res[0][0]=1; for(int i=0;i<m;i++) for(int j=0;j&...

2018-03-25 22:17:51 69

原创 see-66. Plus One

注意进位: class Solution {public: vector<int> plusOne(vector<int>& digits) { int i=digits.size()-1,flag=0,sum; vector<int> res; vector<int> an...

2018-03-25 21:30:27 246

原创 415. Add Strings

注意进位:class Solution {public: string addStrings(string num1, string num2) { int i=num1.size()-1,j=num2.size()-1,flag=0; string res; while(i>=0&&j>=0) ...

2018-03-25 18:52:02 70

原创 67. Add Binary

注意进位:class Solution {public: string addBinary(string s, string t) { int flag = 0; string res; int i = s.size() - 1, j = t.size() - 1; w...

2018-03-25 15:29:03 75

原创 2. Add Two Numbers

遍历链表:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: Li...

2018-03-23 23:18:16 83

原创 374. Guess Number Higher or Lower

// Forward declaration of guess API.// @param num, your guess// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0int guess(int num);class Solution {public: int g...

2018-03-23 22:47:51 95

原创 278. First Bad Version

二分法:// Forward declaration of isBadVersion API.bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { int left=1,right=n; while(left&lt...

2018-03-23 22:24:29 88

原创 34. Search for a Range

二分法:class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { vector<int> res; int left=0,right=nums.size()-1; int mid=(left+r...

2018-03-23 21:32:29 103

原创 81. Search in Rotated Sorted Array II

该题与Search in Rotated Sorted Array 同理,由于存在重复元素,当mid处与边缘right位置处的值相同时,若边缘位置不为target,则边缘right左移一位:class Solution {public: bool search(vector<int>& nums, int target) { int left=0,ri...

2018-03-23 19:50:39 96

原创 33. Search in Rotated Sorted Array

二分法:每次判断mid所在的数段是否有序class Solution {public: int search(vector<int>& nums, int target) { int left=0,right=nums.size()-1; int mid=(left+right)/2; while(le...

2018-03-22 17:52:16 81

原创 153. Find Minimum in Rotated Sorted Array

O(N)时间复杂度:顺序遍历数组 class Solution {public: int findMin(vector<int>& nums) { int pos=findPos(nums); return nums[pos]; } int findPos(vector<int>& ...

2018-03-21 23:06:11 81

原创 160. Intersection of Two Linked Lists

查找二个链表的第一个交叉节点:首先查询二条链表的各自长度,其次长链表上先移动长度差的步数,然后同时遍历二个链表即可:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NU...

2018-03-21 10:48:44 81

原创 599. Minimum Index Sum of Two Lists

hash表即可:class Solution {public: vector<string> findRestaurant(vector<string>& list1, vector<string>& list2) { vector<string> ans; unord...

2018-03-20 21:33:40 101

原创 349. Intersection of Two Arrays

同理 350. Intersection of Two Arrays II,使用hash表即可求解:class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { unordered_map<...

2018-03-20 20:28:49 75

原创 350. Intersection of Two Arrays II

求二个数组的交集:遍历数组nums1,将其中的元素放入hash表,hash表的键值为数组元素,属性值为出现的次数; 遍历数组nums2,同时查询hash表,输出满足要求的数组元素。class Solution {public: vector<int> intersect(vector<int>& nums1, vector<int&gt...

2018-03-20 20:24:30 69

原创 242. Valid Anagram

定义一个hash表,表的键值是字符串s中的字符,属性值为对应字符出现的次数;扫描一遍字符串t,并将hash表中对应字符的属性值逐次减一;最后判断hash表中每个元素的属性值是否为零;class Solution {public: bool isAnagram(string s, string t) { if( s.size()!=t.size() ) ...

2018-03-18 22:22:38 74

原创 see-88. Merge Sorted Array

利用array1多余的位置,从后向前遍历二个数组:class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int total=m+n-1; m--; n--; ...

2018-03-18 15:22:30 779

原创 see-70. Climbing Stairs

实质上是求解斐波那契数列问题:F(n)=F(n-1)+F(n-2),其中F(0)=F(1)=1class Solution {public: int climbStairs(int n) { // if(n==1||n==0) // return 1; // return climbStairs(n-1)+climbStairs(n...

2018-03-17 13:37:15 132

原创 387. First Unique Character in a String

哈希表求解class Solution {public: int firstUniqChar(string s) { unordered_map<char,int> table; for(int i=0;i<s.size();i++) { if(table.find(s[i])!=table....

2018-03-17 13:16:19 77

原创 661. Image Smoother

遍历一遍数组即可:class Solution {public: vector<vector<int>> imageSmoother(vector<vector<int>>& M) { vector<vector<int>> res; for(int i=0;i<M

2018-03-17 12:29:37 154

原创 412. Fizz Buzz

直接判断每个整数能否被3或者5整除:class Solution {public: vector<string> fizzBuzz(int n) { vector<string> res; for(int i=1;i<=n;i++) { if(i%3==0&&i%5...

2018-03-16 22:22:09 111

原创 476. Number Complement

将整数的二进制逐位反转:每位与1异或即可,可完成反转class Solution {public: int findComplement(int num) { if(num==0) return 1; int flag=num,temp=1; while(flag) { ...

2018-03-16 22:14:02 120

原创 see-371. Sum of Two Integers

利用位运算求二个整数的和:原理异或运算是无进制加法,与运算可求得进位class Solution {public: int getSum(int a, int b) { int res; int flag=a&b;//进位 while(flag) { res=(a^b); //xor ...

2018-03-16 21:31:01 114

原创 see-268. Missing Number

求缺失的数字:二种方法:class Solution {public: int missingNumber(vector<int>& nums) { // return minus(nums); return solve(nums); } int minus(vector<int>& nums...

2018-03-16 20:28:10 107

原创 see-121. Best Time to Buy and Sell Stock

遍历数组,记录截至当前元素为止,期间的最小元素,与当前元素求差,求得盈利,并更新最大盈利值。class Solution {public: int maxProfit(vector<int>& prices) { int low=INT_MAX,temp=0; int ans=0; for(int i=0;i&lt...

2018-03-16 19:14:18 180

原创 283. Move Zeroes

将数组中的非零元素移动到所有零元素前面:采用双指针移动法,指针i遍历数组,指针j指向零元素位置class Solution {public: void moveZeroes(vector<int>& nums) { for(int i=0,j=0;i<nums.size();i++) { if(num...

2018-03-16 18:43:25 94

原创 485. Max Consecutive Ones

统计二进制流中连续1的最大个数:遍历一遍二进制流,及时更新最大连续1个数class Solution {public: int findMaxConsecutiveOnes(vector<int>& nums) { int count=0,res=0; for(int i=0,j=0;i<nums.size();i++) ...

2018-03-16 17:05:37 81

原创 680. Valid Palindrome II

当字符串中最多可删除一个元素时,考虑字符串是否仍然满足回文要求:双指针遍历,逐一匹配相应位置的字符;在不匹配的位置,令左指针右移一位或者右指针左移一位(删除一个字符),在分别考虑当下的情况是否满足回文要求。class Solution {public: bool validPalindrome(string s) { int left=0,right=s.size(...

2018-03-16 14:36:24 91

原创 125. Valid Palindrome

判断字符串是否满足回文要求:双指针正逆向扫描,判断相应位置的字符是否相等。class Solution {public: bool isPalindrome(string s) { int left=0,right=s.length()-1; while(left<right) { if(isChar(s...

2018-03-16 14:07:07 73

原创 234. Palindrome Linked List

判断链表是否满足回文标准:将链表分为二段,前一半正常不动,后一半进行反转,然后遍历前半段和后半段的链表节点元素,逐一比对元素属性值,判断是否满足回文标准。class Solution {public: bool isPalindrome(ListNode* head) { if(head==NULL) { return 1;...

2018-03-16 09:35:04 71

原创 290. Word Pattern

第一步对字符串进行单词识别分割,存储在动态数组内;其次建立pattern和str单词序列之间的正向和逆向映射表,如果满足正向和逆向的一一对应关系,那么就符合标准。class Solution {public: bool wordPattern(string pattern, string str) { vector<string> list; //...

2018-03-15 21:49:30 139

原创 500. Keyboard Row

打表查询即可:class Solution {public: vector<string> findWords(vector<string>& words) { unordered_map<char,int> map= { {'q',1},{'w',1},{'e',1},{...

2018-03-14 23:23:17 74

原创 see-504. Base 7

求十进制数的7进制表示法:辗转相除法class Solution {public: string convertToBase7(int num) { if(num==0) return "0"; string ans=""; int temp=num; num=abs(num)...

2018-03-14 12:46:08 68

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除