自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜鸟

too difficult

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

原创 LeetCode 453. Minimum Moves to Equal Array Elements

描述给出一个数组,每次对n - 1个数加1,问经过多少次所有的数相等解决对n - 1个数加1等价于对1个数减1,答案就是所有数的和减去数组长度乘以最小数的积class Solution {public: int minMoves(vector<int>& nums) { int sum = 0, min_val = INT_MAX; for (auto va

2016-12-24 13:21:54 627

原创 LeetCode 76. Minimum Window Substring

描述找出s字符串中最小的窗口包含所有的t字符串种的字符解决2个索引值遍历class Solution {public: string minWindow(string s, string t) { int16_t arr[128] = {0}; size_t length = t.size(); size_t cnt = length;

2016-12-23 20:42:45 651

原创 LeetCode 86. Partition List

描述根据值x划分链表,小于x的部分在前面,大于等于x的在后面,每个节点的相对顺序保持不变解决利用两个临时链表分别存两个子链表,最后把链表合在一起/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : va

2016-12-22 23:37:39 490

原创 LeetCode 81. Search in Rotated Sorted Array II

描述在循环数组中,查找是否存在目标值解决二分查找class Solution {public: bool search(vector<int>& nums, int target) { int length = nums.size(); int l = 0, r = length - 1; while (l < r) {

2016-12-19 15:14:56 454

原创 LeetCode 61. Rotate List

描述把链表循环右移k个单位解决先算出链表长度,然后把末尾节点指向头节点,然后再从头节点右移length - k 个单位,得到新链表的头指针,并设置末尾的空节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int

2016-12-17 11:53:13 360

原创 LeetCode 69. Sqrt(x)

描述实现sqrt解决牛顿迭代法,利用迭代公式 fn+1=(fn+1+x/fn)/2.0;f_{n} + 1 = (f_{n+1} + x / f_{n}) / 2.0; class Solution {public: int mySqrt(int x) { if (x == 0) return 0; const double zz =

2016-12-14 17:53:48 415

原创 LeetCode 63. Unique Paths II

描述从左上走到右下右多少种走法,中间可能有障碍物解决动态规划,把存答案的数组初始化所有为0,然后从左到右,从上往下遍历下去即可class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { int r = obstacleGrid.size();

2016-12-12 20:07:24 469

原创 LeetCode 113. Path Sum II

描述求根节点到叶子节点的路径和等于目标和的所有路径解决左右递归/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right

2016-12-12 19:29:21 343

原创 LeetCode 145. Binary Tree Postorder Traversal

描述后序迭代遍历二叉树解决用stack存节点,当当前根结点的左右节点为空或者右子节点被访问过,就把根节点加入vector中/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int

2016-12-11 21:46:45 319

原创 LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal

描述给出中序与后序遍历顺序,重建二叉树解决利用后序遍历找根节点,把中序遍历分成两部分,递归/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), lef

2016-12-11 19:56:46 327

原创 LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal

描述给出先序和中序,重构二叉树解决递归,利用先序找根节点,再把中序分为左右子树,递归解决/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left

2016-12-10 23:16:55 392

原创 LeetCode 49. Group Anagrams

描述把由相同字符构成的字符串,组成一个字符串向量,分别存在一起解决涉及到1对多的问题,利用map即可class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string, vector<string>> m1; for

2016-12-10 21:51:36 337

原创 LeetCode 165. Compare Version Numbers

描述判断两个版本号的大小解决从左往右,以’.’为分割,逐次比较class Solution {public: int compareVersion(string version1, string version2) { int length1 = version1.size(); int length2 = version2.size();

2016-12-09 16:55:12 349

原创 LeetCode 299. Bulls and Cows

描述给出两个字符串A和B,判断A、B有多少个字符位置与字符都相同,有多少个字符在B和A中都出现了,但是位置不同解决用map去存A中字符(位置与值不同),用vector存B中独有的字符,最后遍历vector中的字符即可class Solution {public: string getHint(string secret, string guess) { int length

2016-12-08 15:44:23 627

原创 LeetCode 284. Peeking Iterator

描述实现PeekingTterator这个类的方法解决调用父类的方法,用两个成员变量保存值和状态// Below is the interface for Iterator, which is already defined for you.// **DO NOT** modify the interface for Iterator.class Iterator { struct Da

2016-12-08 15:12:37 407

原创 LeetCode 279. Perfect Squares

描述求一个数最少由几个平方数求到解决动态规划class Solution {public: int numSquares(int n) { vector<int> res(n + 1); for (int i = 0; i <= n; ++i) { res[i] = i; for (int j

2016-12-07 13:36:18 294

原创 LeetCode 287. Find the Duplicate Number

描述把10进制数转换成16进制的数解决如果是负数,c++做>>会被当成算术右移,在前面补0,把所有的数转换成unsigned格式即可class Solution {public: string toHex(int num) { string res = ""; string zz = "a"; unsigned num1 = num;

2016-12-07 13:13:21 336

原创 LeetCode 405. Convert a Number to Hexadecimal

描述把10进制数转换成16进制的数解决如果是负数,c++做>>会被当成算术右移,在前面补0,把所有的数转换成unsigned格式即可class Solution {public: string toHex(int num) { string res = ""; string zz = "a"; unsigned num1 = num;

2016-12-06 10:39:06 401

原创 LeetCode 257. Binary Tree Paths

描述找出从根节点到叶子结点的路径解决左右递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NU

2016-12-06 10:16:12 283

原创 LeetCode 278. First Bad Version

描述给出一个数组,代表版本号,找最开始出错的位置解决二分查找// Forward declaration of isBadVersion API.bool isBadVersion(int version);class Solution {public: int firstBadVersion(int n) { int l = 1, r = n; whil

2016-12-06 09:44:11 284

原创 LeetCode 129. Sum Root to Leaf Numbers

描述求根节点到每个叶子节点所组成的数的和解决递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(

2016-12-06 00:23:15 364

原创 LeetCode 77. Combinations

描述n个1~n的数,找出含有k个数的组合解决回溯class Solution {public: vector<vector<int>> res; vector<int> tmp; vector<vector<int>> combine(int n, int k) { help(res, tmp, n, k, 1, 0); return res

2016-12-03 17:18:08 279

原创 LeetCode 41. First Missing Positive

描述给出一个未排序的数组,找出丢失的数,从1开始的解决遍历数组,交换数,使得每个数对应索引号。最后再遍历看哪一个数不对,返回即可。class Solution {public: int firstMissingPositive(vector<int>& nums) { int length = nums.size(); for (int i = 0; i <

2016-12-03 16:33:34 267

原创 LeetCode 72. Edit Distance

描述问一个字符串需要多少的操作才能变成另一个字符串解决动态规划class Solution {public: int minDistance(string word1, string word2) { int length1 = word1.size(); int length2 = word2.size(); vector<vector<i

2016-12-02 15:32:00 238

原创 LeetCode 42. Trapping Rain Water

描述给出一些柱子的高度,求这些连续柱子所能存储的水的体积解决找出最高的柱子,然后遍历左右两边即可class Solution {public: int trap(vector<int>& height) { int length = height.size(); if (length <= 1) return 0; i

2016-12-02 15:15:20 307

原创 LeetCode 56. Merge Intervals

描述把有重合的区间合并在一起解决先排序,然后贪心遍历/** * Definition for an interval. * struct Interval { * int start; * int end; * Interval() : start(0), end(0) {} * Interval(int s, int e) : start(s), end

2016-12-01 14:29:17 270

原创 LeetCode 31. Next Permutation

描述实现next_permutation函数解决1.先从右往左遍历找到第一个非递增的数,记为val,并且记下位置。如果从右往左遍历时发现数组是递增的,直接reverse整个数组,否则接着下一步 2.从右往左找第一个大于等于val的数,记下位置 3.交换刚才记录的那两个位置 4.reverseval右边的数class Solution {public: void nextPermuta

2016-12-01 14:04:59 248

空空如也

空空如也

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

TA关注的人

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