自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Leetcode209——长度最小的子数组(双指针问题)

题目链接:https://leetcode-cn.com/problems/minimum-size-subarray-sum/思路:双指针首先两个指针同时指向0位,beg,last如果当前值之和大于等于s,则l循环减去nums[beg],beg++然后加上nums[last],last++class Solution {public: int minSubArrayLen(int s, vector<int>& nums) { int l

2020-06-28 22:43:02 118

原创 leetcode139——单词拆分(动态规划)

题目链接:https://leetcode-cn.com/problems/word-break/首先考虑到unordered_set是基于哈希表实现的,查询的时间复杂度为O(1)所以首先将wordDict中每个单词存到set中将dp[0]初始化为true;对于dp[i]可以考虑分解为两部分,dp[j]&&check(s[j...i-1])(0<=j<=i-1)check即是根据unordered_set来判断是否有等于s[j...i-1]的单词。cla

2020-06-26 15:26:23 293

原创 leetcode16——带绝对值的最接近三数之和

题目链接:https://leetcode-cn.com/problems/3sum-closest/solution/zui-jie-jin-de-san-shu-zhi-he-by-leetcode-solution/思路:借助双指针对枚举进行优化。如果pb,pc当前指向元素大于target,则将pc向左移动,因为以pc为第三个数的指针的pa,pb,pc已经指向最接近target的值。如果小于target,则将pb向右移动,因为以pb为第二个数指针的当前三指针已经达到最接近target。即如

2020-06-24 23:05:13 163

原创 剑指offer20题——leetcode主站65题

题目链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/思路:1. 首先去除字符串首尾字符2. 根据小写e划分指数和底数3. 分别对指数和底数判断是否合法即可class Solution {public: bool judgeDigit(string s) { int len=s.size(); bool flag_has_digit=fals

2020-06-19 21:34:05 130

原创 leetcode1014——最佳观光组合

题目链接:https://leetcode-cn.com/problems/best-sightseeing-pair/思路:不能采用两重循环暴力枚举,会超时,而应该将A[i]+A[j]+i-j拆分为两部分,A[i]+i,A[j]-j两部分(i<j)。这样单重循环枚举j,保留j之前的最大的A[i]+i,为max_i_part,然后每次取max_i_part+A[j]-j当前的最大值。class Solution {public: int maxScoreSightseeingP

2020-06-18 11:50:08 156

原创 Leetcode——只出现一次的字符

只出现一次的字符I:其余字符出现两次直接将全部数字异或得到结果。只出现一次的字符II:其余字符出现三次用seen_once=~seen_twice&(seen_once^num)用seen_twice=~seen_once&(seen_twice^num)来区分出现一次或三次,最后结果为出现一次。class Solution {public: int singleNumber(vector<int>& nums) { i

2020-06-16 09:14:18 168

原创 Leetcode1300—— 转变数组后最接近目标值的数组和

考点:双重二分函数:max_element(vec.begin(),vec.end())返回指向最大元素的迭代器lower_bound(vec.begin(),vec.end(),val)返回指向排好序数组的大于等于val的第一个元素的迭代器lower_bound(vec.begin(),vec.end(),val)返回指向排好序数组的大于val的第一个元素的迭代器class Solution {public: int findBestValue(vector<int&

2020-06-14 23:34:28 68

原创 Leetcode15——三数之和为0

伴随着第二个数递增时,第三个数递减,所以采用双指针:class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { int len=nums.size(); sort(nums.begin(),nums.end()); vector<vector<int>>result; for

2020-06-13 12:48:59 157

原创 leetcode990——并查集

class Solution {private: int fa[26];public: int DFS(int x) { if(fa[x]!=x) fa[x]=DFS(fa[x]); return fa[x]; } bool equationsPossible(vector<string>& equations) { int len=equations.size();.

2020-06-09 17:13:05 107

原创 Leetcode面试题9——根据前序和中序遍历序列来建立二叉树

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* constructTree(vector.

2020-06-07 13:51:24 248

原创 leetcode837——动态规划

获胜的概率只和下一轮开始前的得分有关,因此根据得分计算概率。令dp[x]表示从x开始游戏并获胜的概率,目的是求dp[0]的值。情况1:当K<=x<=Min(N,K-1+W)时dp[x]=1。当x>=Min(N,K-1+W)时dp[x]=0;情况2:当x<Kdp[x]=直观的动态规划解法:class Solution {public: double new21Game(int N, int K, int W) {

2020-06-03 15:37:30 117

空空如也

空空如也

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

TA关注的人

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