Bendaai的博客

私信 关注
Bendaai
码龄4年

莫忘少年凌云志 曾许天下第一流

  • 171,572
    被访问量
  • 516
    原创文章
  • 11,153
    作者排名
  • 58
    粉丝数量
  • 于 2016-10-17 加入CSDN
获得成就
  • 获得15次点赞
  • 内容获得45次评论
  • 获得26次收藏
荣誉勋章
TA的专栏
  • PAT
    155篇
  • Other
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Flask 网站 Web服务器部署-Ubuntu18.0.4

cd /home1. 安装anaconda下载wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2019.03-Linux-x86_64.sh或者wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh安装...
原创
579阅读
0评论
0点赞
发布博客于 2 年前

Leetcode 275. H指数 II

class Solution {public: int hIndex(vector<int>& citations) { for(int i=(int)citations.size()-1;i>=0;--i) if(citations[i]<=citations.size()-1-i) return citation...
原创
260阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 274. H指数

题目有问题 The definition of the index is that a scholar with an index of h has published h papers each of which has been cited in other papers at least h times.class Solution {public: int hIndex(v...
原创
206阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 273. 整数转换英文表示

分层考虑,先1000以内的情况,然后再把(Billion)(Million)(Thousand)拼起来class Solution {public: const int Mod[3] = { 1000000000,1000000,1000 }; string H[3] = { "Billion","Million","Thousand" }, M[8] = {...
原创
303阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 268. 缺失数字

class Solution {public: int missingNumber(vector<int>& nums) { int L=nums.size(); long long ans=L*(1+L)>>1; for(auto &x:nums) ans-=x; ...
原创
139阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 264. 丑数 II

class Solution {public: int nthUglyNumber(int n) { vector<int> ans(1, 1); int multi[3] = { 0,0,0 }, s[3] = { 2,3,5 };//2,3,5 while (ans.size() < n) { ...
原创
189阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 263. 丑数

class Solution {public: bool isUgly(int num) { if(!num) return false; int s[3]={2,3,5}; for(int i=0;i<3;++i) while(!(num%s[i])) num/=s[i]; return nu...
原创
218阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 260. 只出现一次的数字 III

设只出现一次的两个数为b,c 先全部数异或依次,得到的是a=b^c,a二进制取1的位【k】代表b c在k位1个为1一个为0 把数组分2组,一组在k位是1一组是0,这样就把b和c分在了不同组,然后两组异或和分别了b和cclass Solution {public: vector<int> singleNumber(vector<int>& nums)...
原创
272阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 258. 各位相加

每次第k位x【xek】计算的时候变为x,减少xek-x=x(1ek-1)【减少的是9的倍数】即答案和num之间差为9的倍数【num=ans+9x】 ans的取值为1~9故ans=(num-1)%9+1class Solution {public: int addDigits(int num) { return (num-1)%9+1; }};...
原创
182阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 257. 二叉树的所有路径

dfs深搜/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; ...
原创
274阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 242. 有效的字母异位词

class Solution {public: bool isAnagram(string s, string t) { int cnt[26]={}; for(auto& x:s) ++cnt[x-'a']; for(auto& x:t) --cnt[x-'a']; ...
原创
400阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 241. 为运算表达式设计优先级

假设每一个符号为最后一步,若没有符号,只需返回字符串对应的数即可 【如2*3-4*5】 (2)*(3-4*5)、(2*3)-(4*5)、(2*3-4)*5class Solution {public: int calcu(char e,int a,int b){ switch(e){ case '+': return a+b; ...
原创
580阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 240. 搜索二维矩阵 II

搜索过程中,慢慢缩小列的范围【matrix[i][j]右下方的值都大于它】class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int n=matrix.size(),m=n?matrix[0].size():0; ...
原创
231阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 239. 滑动窗口最大值

考察单调队列【On复杂度求固定大小窗口的最大值最小值】class Solution {public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { deque<int> que; vector<int> ans; ...
原创
428阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 238. 除自身以外数组的乘积

出于对空间复杂度分析的目的,输出数组不被视为额外空间。 这个算一个提示class Solution {public: vector<int> productExceptSelf(vector<int>& nums) { vector<int> ans; int t=1; for(int i=...
原创
552阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 237. 删除链表中的节点

很巧妙,是用node->next的值赋值给node,然后删除node->next/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * ...
原创
167阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 236. 二叉树的最近公共祖先

1.p q不互为子孙,一个在fa的左,一个在fa的右 2.p q互为子孙,p是q的孙或q是p的孙/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) ...
原创
345阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 235. 二叉搜索树的最近公共祖先

最近祖先节点特点,大于小的那个,小于大的那个/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right...
原创
191阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 234. 回文链表

反转前半部分链表,然后依次比较/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:...
原创
126阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 233. 数字1的个数

统计每一位上1的个数class Solution {public: int countDigitOne(int n) { if(n<=0) return 0; int ans=0,k=1; string s="0"+to_string(n); for(int i=2;i<s.size();++i) k*=10...
原创
507阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 232. 用栈实现队列

0号栈是队列的正序,1号栈是队列的倒序【只有其中一个在使用,用到另一个时需要转换】class MyQueue {public: /** Initialize your data structure here. */ stack<int> sta[2]; int f; MyQueue() { f=0; } /** P...
原创
186阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 231. 2的幂

n二进制是0.010.0的形式【排除100..】class Solution {public: bool isPowerOfTwo(int n) { return n>0 && n==(n&-n); }};
原创
138阅读
2评论
0点赞
发布博客于 3 年前

Leetcode 230. 二叉搜索树中第K小的元素

记录每个节点为跟的树的节点个数,然后进行查找,若删除,添加只需要Oh的复杂度来更改节点个数/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : va...
原创
137阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 229. 求众数 II

摩尔投票法class Solution {public: vector<int> majorityElement(vector<int>& nums) { int a=0,b=0,ca=0,cb=0; vector<int> ans; for(auto& x:nums){ ...
原创
272阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 228. 汇总区间

class Solution {public: vector<string> summaryRanges(vector<int>& nums) { vector<string> ans; if(nums.empty()) return ans; int val=nums[0]; f...
原创
268阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 227. 基本计算器 II

遇到+-,要把前面的运算都完成 遇到乘除,若之前的运算符是乘除的话,则运算乘除,否则不运算 【若乘除连着几个,后一个乘除都会先计算前一个乘除】class Solution {public: int get_new_num(int a,int op,int b){ switch(op){ case 1: return a+b; ...
原创
294阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 226. 翻转二叉树

先左、右子树翻转下,然后交换位置,递归/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NU...
原创
94阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 225. 用队列实现栈

通过判断队列是否为空来找到栈顶class MyStack {public: /** Initialize your data structure here. */ queue<int> que[2]; int f; MyStack() { f = 0; } /** Push element x onto stack...
原创
147阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 224. 基本计算器

一个全局符号flag,遇到左括号,若括号前面为+flag不变,-flag取反 pre代表上一个符号,若遇到括号,则进行重置【初始为1即为+】重置后也是+ 遇到一个数,答案+flag*pre*val,注意有空格的情况,直接跳过即可class Solution {public: int calculate(string s) { int val = 0, ans = ...
原创
453阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 223. 矩形面积

求重叠部分的面积【若没有则为0】 答案为两面积相加-重叠部分面积class Solution {public: int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) { int a=max(A,E),b=max(B,F),c=min(C,G),d=min(D,H); ...
原创
213阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 222. 完全二叉树的节点个数

对答案二分法进行求解/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *...
原创
169阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 221. 最大正方形

动态规划,dp[i][j]=min(dp[i-1][j-1],L[i-1][j],up[i][j-1])+1;【如果不存在则dp,L,up为0】 dp:此位置最大正方形边长,L此位置向左延申1的最长长度,up此位置向上延申1的最长长度class Solution {public: int maximalSquare(vector<vector<char>>&...
原创
161阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 220. 存在重复元素 III

坑点1:考虑t+1和x-mm可能超了int的最大范围,顾都用long long类型 坑点2:t可能是负数class Solution {public: bool containsNearbyAlmostDuplicate(vector<int>& nums, int k, int t) { map<long long,long long&g...
原创
605阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 219. 存在重复元素 II

class Solution {public: set<int> A; bool containsNearbyDuplicate(vector<int>& nums, int k) { int i=0; k+=1; k=min(k,(int)nums.size()); for(;i&l...
原创
150阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 218. 天际线问题

把图分成一个个区间【端点为输入中出现过的端点】,求这些区间的高度【成为一个个矩形】,如果右区间高度不等于左区间,那么右区间的左端点即关键点class Solution {public:vector<pair<int, int>> ans,all;set<int> vis;vector<pair<int, int>> getSk...
原创
369阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 217. 存在重复元素

class Solution {public: set<int> A; bool containsDuplicate(vector<int>& nums) { for(auto &x:nums) if(!A.count(x)) A.insert(x); else return ...
原创
134阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 216. 组合总和 III

暴力枚举配合剪枝class Solution {public: vector<vector<int>> ans; vector<int> tmp; void dfs(int k,int n){ int i= tmp.empty()? 0:tmp.back(); ++i; if(i+k-...
原创
289阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 215. 数组中的第K个最大元素

快速排序的思想 ON平均时间复杂度class Solution {public: int quicksort(vector<int>& nums, int k,int l,int r){ int ll=l,rr=r,val=nums[l]; while(ll<rr){ while(ll<rr &a...
原创
258阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 214. 最短回文串

用了Manacher算法,On复杂度class Solution {public: string shortestPalindrome(string s) { reverse(s.begin(),s.end()); string s2="$#"; for(auto& x:s) s2 += x ,s2+='...
原创
264阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 213. 打家劫舍 II

class Solution {public: int rob(vector<int>& nums) { if(nums.empty()) return 0; int tou=0,butou=0,t,ans1,ans2; for(int i=1;i<nums.size();++i)//1号不偷的情况,2号至最后一号...
原创
190阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 211. 添加与搜索单词 - 数据结构设计

借用Trie树,addword就是insert,搜索的时候因为有’.’的存在,用递归dfs的思路#define cti(x) (x-'a')#define itc(x) (x+'a')const int maxn = 70005;const int sigma_size = 26;class WordDictionary {public: /** Initialize you...
原创
323阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 212. 单词搜索 II

用Trie树方式实现#define cti(x) (x-'a')#define itc(x) (x+'a')const int maxn = 70005;const int sigma_size = 26;class Solution {public: int ch[maxn][sigma_size], val[maxn] = {}, sz = 0; void _in...
原创
174阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 210. 课程表 II

和Leetcode 207. 课程表一样,拓扑排序,上一个记录拓扑排序过程中的数量,这一个记录顺序class Solution {public: vector<int> findOrder(int numCourses, vector<pair<int, int>>& prerequisites) { vector&
原创
208阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 209. 长度最小的子数组

On的解法,当队列大于等于s的时候,剔除队首元素,直到小于s,这样以队尾元素为最后一个元素的子数组的大于等于s的最大长度为队列size+1 O nlgn解法就是用二分法去搜寻答案,每次验证是否满足需要On的时间,故为O nlgnclass Solution {public: int minSubArrayLen(int s, vector<int>& nums)...
原创
279阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 208. 实现 Trie (前缀树)

#define cti(x) (x-'a')#define itc(x) (x+'a')const int maxn = 100005;const int sigma_size = 26;class Trie {public: /** Initialize your data structure here. */ int ch[maxn][sigma_size], val...
原创
120阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 207. 课程表

拓扑排序class Solution {public: bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) { vector<vector<int>> A(numCourses,vector<int>()); ...
原创
140阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 206. 反转链表

迭代版本/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNo...
原创
63阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 205. 同构字符串

对字符重新进行编号,再进行比较是否相等class Solution {public: bool isIsomorphic(string s, string t) { map<char,int> A; string ss,tt; for(auto x:s) if(A.count(x)) ss+=(cha...
原创
92阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 204. 计数质数

筛法求素数class Solution {public: int countPrimes(int n) { int ans=0; vector<int> A(n,1); for(int i=2;i<n;++i) if(A[i]){ ++ans; ...
原创
88阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 203. 删除链表中的节点

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* re...
原创
86阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 202. 快乐数

class Solution {public: set<int> A; bool isHappy(int n) { while(n!=1){ A.insert(n); int k=0; while(n) k+=(n%10)*(n%10),n/=10;...
原创
97阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 201. 数字范围按位与

class Solution {public: int rangeBitwiseAnd(int m, int n) { int t=m&n,ans=0; n-=m; while(t){ int k=t&-t; if(k>=n) ans+=k; t-...
原创
448阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 200. 岛屿的个数

求连通量的个数class Solution {public: int n,m; int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1}; bool _place(int x,int y){ return x>=0 && x<n && y>=0 &&y<m; ...
原创
190阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 199. 二叉树的右视图

层序遍历【从右往左】/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *...
原创
164阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 198. 打家劫舍

tou[k]=butou[k-1]+nums[k] butou[k]=max(butou[k-1],tou[k-1]) 压缩数组,只要两个变量就成class Solution {public: int rob(vector<int>& nums) { int tou=0,butou=0,t; for(auto& x:nu...
原创
147阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 191. 位1的个数

class Solution {public: int hammingWeight(uint32_t n) { int ans=0; while(n) ++ans,n-=n&-n; return ans; }};
原创
129阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 190. 颠倒二进制位

class Solution {public: uint32_t reverseBits(uint32_t n) { uint32_t ans=0; for(int i=0;i<32;++i) ans<<=1,ans+=(n&1?1:0),n>>=1; return ans; ...
原创
220阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 189. 旋转数组

class Solution {public: void rotate(vector<int>& nums, int k) { int N=nums.size(); reverse(nums.begin(),nums.begin()+N-k%N); reverse(nums.begin()+N-k%N,nums.end(...
原创
56阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 188. 买卖股票的最佳时机 IV

动态规划,参考博客 https://blog.csdn.net/danielrichard/article/details/75091410 规划方程: 今天第x次买入状态的最大收入=max(昨天第x次买入状态的最大收入+0【今天不卖】,昨天第x-1次卖出状态的最大收入+今天的股票价格【今天买入】) 今天第x次卖出状态的最大收入=max(昨天第x次卖出状态的最大收入-0【今天不买】,昨天第x...
原创
920阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 187. 重复的DNA序列

暴力class Solution {public: vector<string> findRepeatedDnaSequences(string s) { map<string,int> A; vector<string> ans; for(int i=0;i+9<s.size();++i) ...
原创
323阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 179. 最大数

重点是这个排序的操作,注意nums里都是0的特殊情况class Solution {public: string largestNumber(vector<int>& nums) { sort(nums.begin(),nums.end(),[](const int a,const int b){return stol(to_string(a)+t...
原创
260阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 174. 地下城游戏

动态规划问题class Solution {public: int calculateMinimumHP(vector<vector<int>>& dungeon) { int L = dungeon[0].size(), row = dungeon.size(); vector<int> dp(L, 0);
原创
437阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 173. 二叉搜索树迭代器

二叉树的中序迭代实现/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */...
原创
153阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 172. 阶乘后的零

0都是由因数2*5实现,5的因子肯定比2多,所以求5的因子即可class Solution {public: int trailingZeroes(int n) { int ans=0; while(n) ans+=(n/=5); return ans; }};...
原创
167阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 171. Excel表列序号

class Solution {public: int titleToNumber(string s) { int ans=0; for(auto &x:s) ans=ans*26+x-'A'+1; return ans; }};
原创
138阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 169. 求众数

class Solution {public: int majorityElement(vector<int>& nums) { int k=nums[0],n=1; for(int i=1;i<nums.size();++i) if(!n) k=nums[i],n=1; else ...
原创
85阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 168. Excel表列名称

26进制,注意26还是一位class Solution {public: string convertToTitle(int n) { string ans; while(n) ans+='A'+(n-1)%26,n=(n-1)/26; reverse(ans.begin(),ans.end()); ...
原创
251阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 167. 两数之和 II - 输入有序数组

class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int l=0,r=numbers.size()-1; while(1){ if(numbers[l]+numbers[r]==target) ...
原创
178阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 166. 分数到小数

模拟列式的过程,注意负数、取反超过int的情况class Solution {public: string fractionToDecimal(int numerator, int denominator) { long long t = numerator, d = denominator; map<long long, int> A;...
原创
979阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 165. 比较版本号

注意版本号末尾是0的话要忽略class Solution {public: int compareVersion(string version1, string version2) { string v1, v2; int k = 0; for (auto& x : version1) { if (x =...
原创
156阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 164. 最大间距

首先遍历找到数组中最大值MM和最小值mm,把这个区间均分成nums.size()个小区间,再遍历数组求得每个区间的最大值和最小值,区间最小值-上一个区间的最大值的集合中的最大值即是答案【注意区间可能没有元素】class Solution {public: int maximumGap(vector<int>& nums) { if (nums.si...
原创
436阅读
0评论
0点赞
发布博客于 3 年前

Leeetcode 162. 寻找峰值

二分查找class Solution {public: int findPeakElement(vector<int>& nums) { int l=0,r=nums.size()-1; while(1){ int mid=(l+r)>>1; if((mid==0 || n...
原创
79阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 160. 相交链表

先求两链表长度差L 先让长链表头指针先往前走L,再两链表指针一块走,将会在相交的链表节点处碰头/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} ...
原创
133阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 155. 最小栈

A就是正常的栈 m存放入(出)栈每次最小值发生变化的临界点class MinStack {public: /** initialize your data structure here. */ vector<int> A,m; MinStack() { } void push(int x) { A.push_back(...
原创
148阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 154. 寻找旋转排序数组中的最小值 II

处理收尾相同的重复即可class Solution {public: int findMin(vector<int>& nums) { int l = 0, r = nums.size() - 1;//[l,r) while (l != r && nums[r] == nums[l]) --r; wh...
原创
139阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 153. 寻找旋转排序数组中的最小值

二分查找class Solution {public: int findMin(vector<int>& nums) { int l = 0, r = nums.size() - 1;//[l,r) while (1) { if (nums[l] <= nums[r]) return nums[l];...
原创
141阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 152. 乘积最大子序列

类似动态规划class Solution {public: int maxProduct(vector<int>& nums) { int m = 1, M = 1, ans = -999999, t; for (auto &x : nums) { ans = max(ans, x); ...
原创
182阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 151. 翻转字符串里的单词

class Solution {public: void reverseWords(string &s) { while (!s.empty() && s.back() == ' ') s.pop_back(); if (s.empty()) { s = ""; return; } int i = 0, index ...
原创
385阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 150. 逆波兰表达式求值

注意第一个字符是’-‘可能是减号也可能是负数class Solution {public: int evalRPN(vector<string>& tokens) { vector<int> ans; for (auto &x : tokens) switch (x[0]) ...
原创
169阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 149. 直线上最多的点数

注意要定义Point的<,才可以用map,保存后面的点到此点的斜率【用x:y的形式,最简形式】,然后用map存次数/*** Definition for a point.* struct Point {* int x;* int y;* Point() : x(0), y(0) {}* Point(int a, int b) : x(a), y...
原创
556阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 148. 排序链表

quicksort快排/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ...
原创
74阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 147. 对链表进行插入排序

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* in...
原创
190阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 146. LRU缓存机制

cnt辐射que中key出现的次数,当次数=0时,代表key被移出class LRUCache {public: int cap; unordered_map<int, int> cnt, val; deque<int> que; LRUCache(int capacity) { cap = capacity; ...
原创
397阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 145. 二叉树的后序遍历

https://blog.csdn.net/bendaai/article/details/78675251 一个函数实现树的非递归前、中、后序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig...
原创
101阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 144. 二叉树的前序遍历

https://blog.csdn.net/bendaai/article/details/78675251 一个函数实现树的非递归前、中、后序遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *righ...
原创
456阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 143. 重排链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: void reorder...
原创
249阅读
0评论
0点赞
发布博客于 3 年前

Leecode 142. 环形链表 II

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *de...
原创
235阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 141. 环形链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: set<ListN...
原创
77阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 140. 单词拆分 II

dfs遍历,用139题的dp来进行剪枝class Solution {public: vector<bool> dp; vector<string> ans, tmp; void dfs(string &s, vector<string>& wordDict, int index) { if (in...
原创
429阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 139. 单词拆分

动态规划问题,dp[k]:到k位置是否可以划分成功class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { vector<bool> dp(s.size(), false); for (int i = 0; i < s....
原创
161阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 138. 复制带随机指针的链表

/** * Definition for singly-linked list with a random pointer. * struct RandomListNode { * int label; * RandomListNode *next, *random; * RandomListNode(int x) : label(x), next(NULL), ...
原创
224阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 137. 只出现一次的数字 II

三进制半加器class Solution {public: long long tri(long long a, long long b) { long long ans = 0, k; vector<int> A; while (a || b) { A.push_back((a % 3 + b % ...
原创
86阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 136. 只出现一次的数字

异或,两个相同的值异或为0class Solution {public: int singleNumber(vector<int>& nums) { int ans=0; for(auto &x:nums) ans^=x; return ans; }};...
原创
53阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 135. 分发糖果

分类讨论 比前者大【暂定此位置糖果为前者+1,这个糖果可能因为后面孩子太少而增多,不过前面的不受影响n=1】比前者相等【暂定此位置糖果为1,这个糖果可能因为后面孩子太少而增多,不过前面的不受影响n=1】比前者小 若前者等于1,说明此位置孩子糖果太少了,要将前面受影响位置都+1,并暂定此位置糖果为1,且影响位置的个数也+1【3 2 1->4 3 2 1】 若前者等于2,暂定此位置...
原创
335阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 134. 加油站

class Solution {public: int P(int k,int n){ return k<0?k+n:k; } int canCompleteCircuit(vector<int>& gas, vector<int>& cost) { for(int i=0;i<gas.s...
原创
264阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 133. 克隆图

递归构图,注意不要重复创建节点/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : lab...
原创
318阅读
0评论
1点赞
发布博客于 3 年前

Leetcode 132. 分割回文串 II

和131类似,注意用dp剪枝,class Solution {public: int ans, tmp; vector<int> dp; string str, x, ss; bool is_P() { int i = 0, j = str.size() - 1; while (i < j) { ...
原创
251阅读
1评论
0点赞
发布博客于 3 年前

Leetcode 131. 分割回文串

dfs深搜回溯class Solution {public: vector<vector<string>> ans; vector<string> tmp; string str; bool is_P() { int i = 0, j = str.size() - 1; while (i &l...
原创
418阅读
0评论
0点赞
发布博客于 3 年前

PAT 1023 The Best Polygon(35 分)

首先求得凸多边形的点集排序 然后dp[t][i][j]代表以i,j为两端的t+3边形最大面积时的情形【端点逆时针为i、dp[t][i][j].point、…、j】 dp[t][i][j]为k取[i+1,j-t)【面积为三角形i,k,j的面积和dp[t-1][k][j]的最大面积】的最大值的情形【注意k是t+3边形端点中最靠i的那个点,且是i的下一个逆时针点】#include<iost...
原创
411阅读
0评论
0点赞
发布博客于 3 年前

Leetcode 130. 被围绕的区域

对边界的O进行dfs,把边界O的’O’变为’o’ 然后把所有的’O’【非边界O】变为’X’,’o’【边界O】重新变为’O’class Solution {public: int dx[4]={0,0,1,-1},dy[4]={1,-1,0,0},n,m; void dfs(int row,int col,vector<vector<char>>&am...
原创
531阅读
0评论
0点赞
发布博客于 3 年前