- 博客(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<...
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>...
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<...
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关注的人