leetcode
刷题记录
班达learning
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leet
基础知识 C++ 向量vector #include<vector> using namespace std; 定义 vector<int> vi; vector<vector<int>> vii; 访问:1.下标,2.迭代器 for(int i=0; i<vi.size(); i++) for(vector<int>::iterator it=vi.begin();it!=vi.end(); it++) 常用函数 vi.push_b原创 2020-12-24 15:59:59 · 256 阅读 · 0 评论 -
剑指offer15 - 二进制中的1
C++ 移位 Python C++ class Solution { public: int hammingWeight(uint32_t n) { int res = 0; while(n!=0){ if(n&1==1) res++; n=n>>1; } return res; } }; Python class Solution: def hamm原创 2020-12-13 22:19:56 · 181 阅读 · 0 评论 -
剑指14 - 剪绳子
动态规划 dp: dp[i] 表示将正整数 i 拆分成至少两个正整数的和之后,这些正整数的最大乘积。 边界条件 :0 不是正整数,1 是最小的正整数,0 和 1 都不能拆分,因此 dp[0]=dp[1]=0。 状态转移方程: class Solution { public: int cuttingRope(int n) { vector<int> vi; vi.push_back(0); vi.push_back(0);原创 2020-12-13 21:33:24 · 162 阅读 · 0 评论 -
剑指11 -旋转数字
写法1:遍历 时间复杂度:O(n)O(n)O(n) 写法2: 二分查找 时间复杂度:O(logn)O(log n)O(logn) int MinInOrder(vector<int>& numbers, int left, int right){ //顺序查找[left, right)中的最小值 int res = numbers[left]; for(int i= left+1; i<=right; i++){ if(res>numbers原创 2020-12-02 20:44:15 · 170 阅读 · 0 评论 -
剑指10 - 斐波那契数列
tip 关于求余 (x+y)⊙p=(x⊙p+y⊙p)⊙p(x+y)\odot p = (x\odot p+y\odot p)\odot p(x+y)⊙p=(x⊙p+y⊙p)⊙p防止x+y时溢出,⊙\odot⊙是求余操作 第一种写法 : 直接递归 int fib(int n) { if(n==0) return 0; else if(n==1) return 1; else return (fib(n-1)%1000000007+fib(n-2)%1000000原创 2020-12-02 19:31:11 · 277 阅读 · 0 评论 -
3-无重复字符的最长子串
题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 class Solution { public: int lengthOfLongestSubstring(string s) { int l = s.length(); vector<int> vi; unordered_set<char&g原创 2020-07-25 22:29:23 · 159 阅读 · 0 评论 -
2-两数相加
题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 我的解法 错误解法 当输入[9,8]与[1]时出错 class原创 2020-07-18 18:58:02 · 174 阅读 · 0 评论 -
错误记录
链表 2-两数相加 runtime error: member access within null pointer of type ‘struct ListNode’ (转自: https://blog.youkuaiyun.com/qq_40086556/article/details/81869349) 写在前面 这个BUG是我在做LeetCode的链表一类题目的时候遇到的,觉得还是蛮有代表性的,因为刚开始遇到这个BUG,我完全不知道哪里有问题,还与正确答案反复对比,结果发现完全一样,但我的就报错,后来发现原来是原创 2020-07-18 19:01:21 · 212 阅读 · 0 评论 -
1-两数之和
题目 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 解法 哈希表 代码(C++) class Solution{ public: vector<int> twoSum原创 2020-07-17 19:21:55 · 215 阅读 · 0 评论
分享