自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode_338_比特位计数

此题使用动态规划,使用到算法Brian Kernighan算法,将x和x-1进行与运算,可以将x的最后一位的1去掉。使用dp数组,将每一个数的对应二进制数的1进行记录。 将x和x-1进行与运算,如果等于零,说明此时的x是2的整数次幂。从这个整数次幂到下一个整数次幂之间的数,加上1就可以是下一个整数次幂区间的数的1的个数。而所有的整数次幂1的个数都是1个。代码如下:classSolution{public:vector<int>cou...

2022-03-09 18:25:34 7942

原创 蓝桥杯_数字游戏

此题直接进行从小到大的暴力全排列,然后进行遍历,每一次遍历相加之后,少一个元素,最后只得到一个元素,在数组的第一位,与sum值进行比较,相等则得到答案。代码如下#include <iostream>#include <bits/stdc++.h>using namespace std;int main(){ int n,sum; vector<int> a; int b[11]; cin >> n >&g...

2022-03-08 10:39:14 5664

原创 leetcode_62_不同路径

此题涉及到动态规划,不过题目比较简单,在二维数组中计算经过每个点的路径的总和,通过dp数组来记录每个点,不断往下迭代即可;代码如下:classSolution{public:intuniquePaths(intm,intn){vector<vector<int>>dp;vector<int>y;for(inti=0;i<=n;i++){...

2022-03-07 17:47:22 554

原创 leetcode_219_存在重复元素||

放假了,好久没有刷力扣了这一道题使用了哈希表解决,首先考虑将每个相同数的下标值存在哈希表中,当后面出现与当前下标值相等的数时,判断是否下标值的差小于等k如果大于则将此下标值存在哈希表中(因为肯定越往后的下标值之间的差值越小,则前面的省去)。如果结束循环还没有找到,则返回false。代码如下boolcontainsNearbyDuplicate(vector<int>&nums,intk){unordered_map<int,int>...

2022-01-19 16:24:45 3958

原创 leetcode_1614_括号的最大嵌套深度

类似于括号匹配的算法,当每次出现(时,括号数加一,当出现)时,每次将此时最深的括号数与已知最深的括号数比较,返回最大的值,然后此时的括号数减一,最终得到的就是最深的括号数。代码如下:intmaxDepth(strings){intresult=0;intM=0;stack<char>str;for(inti=0;i<s.length();i++){...

2022-01-07 21:46:58 3043

原创 leetcode_1185_一周中的第几天

此题总体考虑计算总的天数然后对7取余数来计算最后的周数。首先计算总的年数对应的天数,然后统计月数对应的天数,其中都会涉及到闰年的判断,然后根据总的天数判断对应是一周中的哪一天即可。代码如下:stringdayOfTheWeek(intday,intmonth,intyear){//1971,1,1=Friday;intsum=0;for(inti=1971;i<year;i++){...

2022-01-03 16:26:02 2970

原创 leetcode_846_一手顺子

将所有vector中的值以键值的形式插入到map中,以指针的形式遍历map中的每一个值,在循环内部,以groupsize的大小循环遍历,如果在groupsize的范围内不满足递增序列或者达不到groupsize大小,则直接返回false,如果能遍历到最后,则满足,返回true。boolisNStraightHand(vector<int>&hand,intgroupSize){map<int,int>m;...

2021-12-30 22:05:46 384

原创 leetcode_526_优美的排列

此题通过回溯的方法进行求解,即递归调用只要有一个数字符合将此数字标记,以此类推,只要能调用到最后一个数字,那么就可以有一个序列成立,结果加一。代码如下:voidback(int&result,intflag[],vector<int>num,intk){if(k==num.size()){result++;}else{for(inti=0;i<num...

2021-12-29 23:12:28 118

原创 leetcode_1863_找出所有子集的异或总和再求和

本体针对集合元素进行编号,使用二进制位的思想,将集合中每个元素赋予一个值,0表示不使用这个值,1表示使用这个值,然后从0个到集合元素总个数进行取0值,使用全排列将所有的二进制位进行排列,然后将1位置的值进行异或,再求和得到总的值。代码如下:intsubsetXORSum(vector<int>&nums){vector<int>a;intresult=0;for(inti=...

2021-12-28 17:08:55 180

原创 leetcode_剑指offer_64

此题不能使用乘法、循环、判断条件,那么数列求和公式也就不能使用,可以考虑使用递归的方式实现,来模拟循环。代码如下:intcount(intn,intresult){if(n==1){return1;}else{result=n+count(n-1,result);returnresult;}}intsumN...

2021-12-25 22:25:51 1626

原创 leetcode_剑指offer_64

此题不用循环,判断以及乘法实现,那么数列求和公式就不能使用,考虑使用递归实现,可以模拟循环。代码如下:intcount(intn,intresult){if(n==1){return1;}else{result=n+count(n-1,result);returnresult;}}intsumNums(in...

2021-12-25 22:23:45 860

原创 leetcote_1609_奇偶树

本题越写越像PV操作的过程。大体结构:二叉树的层次遍历,数列的递增、递减的判断,数据奇偶性判断,奇偶层的判断。主要过程:在层次遍历的基础之上,使用一个lock来规定访问奇偶层,lock为false访问奇数层lock为true访问偶数层,使用count1,count2来记录奇偶层元素的个数,count1或者count2为0意味着这一层访问结束,使用flag来与当前访问值比较,判断是否递增或递减。上代码:boolisEvenOddTree(TreeNode*root){...

2021-12-25 10:50:34 520

原创 leetcode_686_重复叠加字符串匹配

本题分类考虑,1、当a.length() >b.length()时,如果能构成子串,只存在两种情况,要么a中直接有b要么2a中有b,不然,肯定构不成。2、当a.length() < b.length()时,此时,a最多扩大n倍数,使其整个长度刚好大于b,及n-1时,其长度小于或等于b,n时大于b。代码如下intrepeatedStringMatch(stringa,stringb){stringstr;str+=a;...

2021-12-22 21:45:35 688

原创 leetcode_剑指offer_15

此题主要问题在于对无符号数的二进制位运算,通过位运算符将无符号数的最后一位通过与运算取出来,是1则结果加1即可。代码如下:inthammingWeight(uint32_tn){intresult=0;for(inti=31;i>=0;i--){result+=((n>>i)&1);}returnresult;}...

2021-12-21 20:35:22 36

原创 leetcode_1154_一年中的第几天

此题较为简单,直接上代码:intdayOfYear(stringdate){intyear=(date[0]-'0')*1000;year+=(date[1]-'0')*100;year+=(date[2]-'0')*10;year+=(date[3]-'0');//cout<<year;intmonth=(date[5]...

2021-12-21 16:10:08 51

原创 leetcode_剑指offer_57

本题时间复杂度没有优化到最好,只能算通过,如果直接进行两重for循环,时间复杂度较高。首先将每一个vector中的数进行遍历,使用target做差之后,再在剩下的数据中进行二分查找,时间复杂度为O(nlog(n))。代码如下:vector<int>twoSum(vector<int>&nums,inttarget){vector<int>result;for(inti=0;i<nums....

2021-12-20 22:57:26 571

原创 leetcode_剑指offer57_II

用到数列求和公式:target = (a0+an)*n/2;通过一个编列将多个n求出之后,此时n是一个有序数列,将公式变形得到a0吗,然后遍历n通过变形公式将所有的a0求出。代码如下:vector<vector<int>> findContinuousSequence(int target) { int m[target+5],j = 0; for(int i = 2; i < target;i++){ if( tar...

2021-12-20 09:49:43 53

原创 第一次无内容

2

2021-12-20 09:47:37 275

空空如也

空空如也

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

TA关注的人

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