LeetCode-C++
C++
szuzxt
这个作者很懒,什么都没留下…
展开
-
for(auto &i : temp) 和 for(auto i : temp)的区别
vector<int> temp; 1.for(auto i : temp) 此时i代表temp中的每一个元素,但不能修改temp中的元素 2.for(auto &i : temp) 此时i代表temp中的每一个元素,可以对其进行修改原创 2020-11-10 19:21:19 · 655 阅读 · 0 评论 -
2020-11-01
1、pair的类型:pair是一种模版类型。每个pair 可以存储两个值。这两种值的类型没有限制,也可以将自己写的类放进去。 2、pair 应用:如果一个函数有两个返回值的话,如果是相同类型,就可以用数组返回,如果是不同类型,两个属性的话,就可以用pair 进行操作,有多个属性的时候 ,可以使用tuple。 3、生成方法2种: pair<int ,int >p (5,6); pair<int ,int > p1= make_pair(5,6); pair<strin转载 2020-11-01 09:37:45 · 64 阅读 · 0 评论 -
C++ map的使用方法
1.定义map map<key, value> mymap; 2.遍历map map<key, value> :: iterator it; for(it = mymap.begin(); it != mymap.end(); ++it) { cout << it -> first << it ->secent << endl; }原创 2020-11-01 00:20:15 · 51 阅读 · 0 评论 -
Leetcode初级算法
位1的个数 1.左移一位 n <<= 1; 右移一位 n>>= 1; 2.右移相当于除2!!!!我一开始写除10!!,怪不得算不对我日了 3.n&1的意思是,n与1按二进制位一个一个相&, 可以简单理解为,取出n的二进制中的每一位(从后往前) class Solution { public: int hammingWeight(uint32_t n) { int cnt = 0; while(n != 0) { .原创 2020-10-26 13:19:45 · 130 阅读 · 0 评论 -
Leetcode初级算法
FizzBuzz c++ 整型转字符串型的方法 : to_string() class Solution { public: vector<string> fizzBuzz(int n) { vector<string> ans; for(int i = 1; i <= n; ++i) { if(i % 5 == 0 && i % 3 == 0) { ans.p原创 2020-10-25 11:10:54 · 56 阅读 · 0 评论 -
Leetcode
打家劫舍 1.一开始我用vector<int> dp;然后做题报错,看了看答案,要写成vector<int> dp = vector<int>(length);要初始化数组长度为length 想了会儿明白了,直接vector<int> dp不能直接给dp[0]赋值啊!要给vector开辟一块空间才能操作的嘛! 2.这道题要写出他的状态转移方程!!害! 状态边界条件:当n = 1 时,dp[0] = nums[0], 当n = 2时, dp[1] = .原创 2020-10-24 23:59:19 · 42 阅读 · 0 评论 -
Leetcode初级算法
爬楼梯 不是很难的一道动态规划的题,感觉做多了就记住了。 class Solution { public: int climbStairs(int n) { int dp[10010]; dp[1] = 1; dp[2] = 2; for(int i = 3; i <= n; ++i) { dp[i] = dp[i - 1] + dp[i - 2]; } return原创 2020-10-23 23:53:36 · 70 阅读 · 0 评论 -
Leetcode初级算法
合并两个有序数组 干!有一种很骚的办法,直接合并后,再用sort,芽儿哟! class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { vector<int> ans; int i = 0, j = 0; while(i < m && j < n原创 2020-10-22 23:39:05 · 96 阅读 · 0 评论 -
Leetcode初级算法
二叉树的层次遍历 对于stack和queue来说是push(),对于vector来说是push_back(); 这题最脑坏的部分是,这题是个交错数组,所以要将队列一层出来的值放入vector<int>后再放入vector<vector<int>> class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { queue<Tre原创 2020-10-21 23:39:28 · 140 阅读 · 0 评论 -
LeetCode初级算法
对称二叉树 这道题我一开始的思路是先用中序遍历该对称二叉树,获取到的数据判断是否是回文串,然后判断是否对称,但是我写不出来,我个人觉得方法好像没啥问题,我也没调试,爸爸们求教 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(N原创 2020-10-21 00:02:43 · 68 阅读 · 0 评论 -
LeetCode初级算法
二叉树的最大深度 1.深度遍历(DFS) 从根节点一直往下递归遍历,比较左右子树的高度,每进入一次递归高度+1,直到叶子结点都为空时退出递归。 class Solution { public: int maxDepth(TreeNode* root) { if(root == nullptr) return 0; return max(maxDepth(root -> left), maxDepth(root -> right)) + 1;原创 2020-10-19 13:54:16 · 77 阅读 · 0 评论 -
LeetCode初级算法
递归与迭代的区别: 从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值得编程思想。迭代与普通循环的区别是:迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。递归与普通循环的区别是:循环是有去无回,而递归则是有去有回(因为存在终止条件)。 合并两个有序链表 这题让我没想到的点 1.忘了要动态分配内存空间!!这很关键ListNode* head = new LiseNode(0); .原创 2020-10-18 14:25:47 · 91 阅读 · 0 评论 -
链表题目的一些套路
哑节点 创建 哑节点 作为 结果链表 的开头,返回结果是这个节点的下一个位置。目的是:在未遍历之前,我们不知道构建的结果中,开头元素到底是 l1 还是 l2, 为了让代码整齐,创建哑节点。 使用 move 游标 哑节点标记了 结果链表 的开头,因此是不能移动的。为了把两个链表 merge 的结果放到结果链表的最后,就需要使用一个 move 游标指向 结果链表 的最后一个元素。初始时,move 指向 哑节点,之后随着结果链表的增加而不停地向后移动,始终保持其指向 结果链表 的最后一个元素。 whi转载 2020-10-18 11:14:53 · 73 阅读 · 0 评论 -
LeetCode初级算法
删除链表的倒数第N个节点 对于链表极其不熟悉的我(使用太少了)这题学到很多哈哈哈。 1. ListNode* dummyHead = new LiseNode(0); //建立一个虚指针,初始值为0 2. 建立不需要链表时记得释放内存空间 3.free和delete的区别: delete 用于释放 new 分配的空间,free 有用释放 malloc 分配的空间 class Solution { public: ListNode* removeNthFromEnd(ListNode*.原创 2020-10-17 12:04:04 · 64 阅读 · 0 评论 -
LeetCode初级算法c++
删除链表的结点 这道题提供了删除结点新的思路 刚开始不会做,看了题解明白,以往删除结点想的是利用他的pre值,使他指向当前值的next,即可删除结点。 但是这道题中,没有pre值,要想删除结点,怎么办? 他又有个条件:不会访问到末尾指针!! 故此题可以这样解:让当前值保存是下个结点的值,然后删除其下一个结点!这样就相当于把当前值给删除了!! class Solution { public: void deleteNode(ListNode* node) {原创 2020-10-16 00:18:52 · 112 阅读 · 0 评论 -
LeetCode初级算法C++
读入带空格的string串 string str; getline(cin, str); 实现 strStr() #include <bits/stdc++.h> #include <string> #include <string.h> using namespace std; class Solution { public: int strStr(string haystack, string needle) { if(原创 2020-10-14 23:16:52 · 95 阅读 · 0 评论