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 · 152 阅读 · 0 评论 -
剑指offer15 - 二进制中的1
C++ 移位PythonC++class Solution {public: int hammingWeight(uint32_t n) { int res = 0; while(n!=0){ if(n&1==1) res++; n=n>>1; } return res; }};Pythonclass Solution: def hamm原创 2020-12-13 22:19:56 · 75 阅读 · 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 · 59 阅读 · 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 · 69 阅读 · 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 · 156 阅读 · 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 · 68 阅读 · 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 · 108 阅读 · 0 评论 -
错误记录
链表2-两数相加runtime error: member access within null pointer of type ‘struct ListNode’(转自: https://blog.csdn.net/qq_40086556/article/details/81869349)写在前面这个BUG是我在做LeetCode的链表一类题目的时候遇到的,觉得还是蛮有代表性的,因为刚开始遇到这个BUG,我完全不知道哪里有问题,还与正确答案反复对比,结果发现完全一样,但我的就报错,后来发现原来是原创 2020-07-18 19:01:21 · 120 阅读 · 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 · 145 阅读 · 0 评论