自定义博客皮肤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

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

原创 c++修改指定文件夹下所有文件扩展名

#include <io.h> #include <iostream> #include <cstring> #include <string>using namespace std; //读取文件夹设定const string path = "D:\\pp\\";int main(){ _finddata_t file; long lf; if

2017-01-13 15:16:16 2882 2

原创 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 593

原创 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 618

原创 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 464

原创 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 437

原创 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 341

原创 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 397

原创 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 451

原创 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 330

原创 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 302

原创 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 309

原创 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 371

原创 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 313

原创 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 328

原创 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 571

原创 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 379

原创 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 274

原创 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 317

原创 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 377

原创 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 263

原创 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 266

原创 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 350

原创 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 260

原创 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 253

原创 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 223

原创 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 294

原创 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 251

原创 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 229

原创 LeetCode 45. Jump Game II

描述问最少多少次可以走到数组最后解决用一个数记录当前索引号,然后遍历当前的索引范围,得到下一次遍历的最大索引号class Solution {public: int jump(vector<int>& nums) { int i = 0; int length = nums.size(); int max_index_now = 0, te

2016-11-30 18:08:37 274

原创 LeetCode 55. Jump Game

描述判断从数组的最开始位置,能否移动到最后位置解决记录能走到的最大步长,与数组的长度比较即可class Solution {public: bool canJump(vector<int>& nums) { int i = 0; int length = nums.size(); if (length == 1) re

2016-11-30 16:57:14 216

原创 LeetCode 201. Bitwise AND of Numbers Range

描述给出范围m与n,求范围内的所有数求与的结果解决求出m与n的公共位即可class Solution {public: int rangeBitwiseAnd(int m, int n) { int cnt = 0; while (m != n) { m >>= 1; n >>= 1;

2016-11-29 11:07:35 247

原创 LeetCode 275. H-Index II

描述给出h引用的定义,求h的值解决利用二分即可。class Solution {public: int hIndex(vector<int>& citations) { int length = citations.size(); int l = 0, r = length; while (l < r) {

2016-11-29 10:25:18 280

原创 LeetCode 274. H-Index

描述给出一个数组,给了一个h引用的定义,求这个h解决先排序,然后遍历就完了class Solution {public: int hIndex(vector<int>& citations) { sort(citations.begin(), citations.end()); int length = citations.size(); i

2016-11-28 19:48:58 328

原创 LeetCode 189. Rotate Array

描述对于一个数组,右移k位解决k可能大于数组长度,所以要对k求余,《编程珠玑》上的问题,先对整体旋转一次,然后再根据k分别旋转两个小的部分class Solution {public: void rotate(vector<int>& nums, int k) { int length = nums.size(); k %= length;

2016-11-28 18:49:42 224

原创 LeetCode 290. Word Pattern

class Solution {public: bool wordPattern(string pattern, string str) { stringstream in(str); string tmp; vector<string> zz; while (in >> tmp) {

2016-11-27 17:15:23 301

原创 LeetCode 155. Min Stack

描述实现栈解决两个栈来模拟class MinStack {public: stack<int> s1, s2; MinStack() { } void push(int x) { s1.push(x); if (s2.empty() || x <= s2.top()) s2.push(x); } vo

2016-11-27 16:37:31 275

原创 LeetCode 190. Reverse Bits

描述把一个数的二进制表示逆转后,求逆转后的值解决用bitset解决,然后在循环里面移位。最后返回时,再判断最后一位的值。class Solution {public: uint32_t reverseBits(uint32_t n) { bitset<32> zz(n); string tmp = zz.to_string(); //cout

2016-11-26 13:13:11 346

原创 LeetCode 205. Isomorphic Strings

描述判断两个字符串是否同构解决记录每个字符前一次出现的位置,判断即可。注意不要初始化vector为0,因为字符从索引号为0开始遍历的。class Solution {public: bool isIsomorphic(string s, string t) { int length = s.size(); if (length == 0)

2016-11-26 12:32:17 365

原创 LeetCode 14. Longest Common Prefix

描述找出所有字符串的最长公共前缀解决遍历所有的字符串class Solution {public: string longestCommonPrefix(vector<string>& strs) { int length = strs.size(); if (length == 0) return ""; strin

2016-11-25 14:38:33 303

原创 LeetCode 110. Balanced Binary Tree

描述判断一棵树是否是平衡树解决递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {

2016-11-25 14:09:43 512

空空如也

空空如也

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

TA关注的人

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