- 博客(24)
- 收藏
- 关注
原创 leetcode打卡第三天
给你一个字符串 s ,如果 s 是一个 好 字符串,请你返回 true ,否则请返回 false 。如果 s 中出现过的 所有 字符的出现次数 相同 ,那么我们称字符串 s 是 好 字符串。 链接:1941. 检查是否所有字符出现次数相同 解题思路: 第一种:使用vector记录 class Solution { public: bool areOccurrencesEqual(string s) { vector<int> a(26,0); for(in
2022-01-16 14:39:15
248
原创 dfs-第一天
回溯算法 第一题:组合问题 链接:递归实现指数枚举 解题思路: dfs: 保存状态可以选择数组或者选择二进制 #include<iostream> using namespace std; int n; int a[16]; int b[16]; void dfs(int x,int y,int z) { //当a数组中的数满足每次I的个数,也是一种情况需要输出 if(x==z){ //循环输出A数组中保存的数 for(int i=0;i<x
2022-01-13 14:54:00
110
原创 leetcode打卡第二天
给你一个整数数组 nums 。数组中唯一元素是那些只出现恰好一次的元素,请你返回 nums 中唯一元素的和。 链接:唯一的元素和 解题思路: map保存 第一种方法: class Solution { public: int sumOfUnique(vector<int>& nums) { unordered_map<int,int>cnt; int s=0; for(int i=0;i<nums.size();i++)
2022-01-03 16:17:18
2767
原创 leetcode打卡第一天
题目一: 链接:1995.统计特殊四元组 解题思路: 暴露破解一: class Solution { public: int countQuadruplets(vector<int>& nums) { int n= nums.size(); int s=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++) for(int k
2022-01-02 17:46:59
3736
原创 《九日集训》打卡第九天——递归
题目一: 链接:阶乘后零的个数 解题思路: 简单递归: 1! =1 =>0 2 =2*1=2 =>0 3! =3*2*1=6 =>0 4! =4*3*2*1=24 =>0 5! =5*4*3*2*1=120 =>1 .... 10! =5*2*9*8*7*6*5*4*3*2=3628800 =>2 20!=5*4*19*18*17*16*5*3*14*13*12*11*5*2*9*8*7*6*5*4*3*
2021-12-19 18:59:00
764
原创 《九日集训》打卡第八日
题目一: 链接:翻转题目 解题思路: 行翻转 值翻转 C++: class Solution { public: vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) { //行翻转 for(int i = 0;i<image.size();i++){ reverse(image[i].begin(),i
2021-12-17 22:13:41
185
原创 《九日集训》打卡第七天
题目一: 链接:统计举证负数 解题思路: 暴力 C++: class Solution { public: int countNegatives(vector<vector<int>>& grid) { int s=0; for(int i=0;i<grid.size();i++){ for(int j=0;j<grid[i].size();j++){ if(grid[
2021-12-16 19:49:07
467
原创 《九日集训》第六天打卡_贪心
题目一: 链接:最大乘积 解题思路: 排序+贪心 C++: class Solution { public: int maxProductDifference(vector<int>& nums) { sort(nums.begin(),nums.end()); return nums[nums.size()-1]*nums[nums.size()-2]-(nums[0]*nums[1]); } }; 题目二: 链接:数组拆分 解题思路:
2021-12-15 15:54:33
947
原创 《九日集训》第五天打卡
题目一: 链接:排序数组 解题思路: 采用C语言库里面的qsort(对象,大小,类型大小,排序函数) 排序函数 返回小于0,升序; 排序函数 返回大于0,降序。 C语言: int cmp(const void*a,const void *b){ return *(int *)a - *(int *)b; } int* sortArray(int* nums, int numsSize, int* returnSize){ qsort(nums,numsSize,sizeof(int),cmp
2021-12-14 22:41:35
880
原创 《九日集训》第四天打卡
题目一: 链接:重新排列数组 解题思路: 下标对称,一 一入座 JAVA: class Solution { public int[] shuffle(int[] nums, int n) { int [] data=new int[nums.length]; int k=0; for(int i=0;i<n;i++){ data[k]=nums[i]; k++; data[
2021-12-13 16:42:47
1251
原创 《九日集训》第三天打卡
题目一: 链接:搜索旋转排序数组target数下标 解题思路: 1、暴力破解 C++: class Solution { public: int search(vector<int>& nums, int target) { for(int i=0;i<nums.size();i++){ if(target==nums[i]){ return i; } } return
2021-12-12 20:15:47
410
原创 《九日集训》打卡第二天
题目一: 链接:累加 解题思路: 1、可以使用循环进行累加求和; 2、可以用python中的list求和 C++: class Solution { public: int sumNums(int n) { return ((1+n)*n)/2; } }; Python: class Solution(object): def sumNums(self, n): """ :type n: int :rtype:
2021-12-11 20:01:11
1059
原创 《九日集训》打卡第一日
题目一: 链接:两整数之和 解题思路: 例如 1 +2 =3 => (0001)B ^ (0010)B=(0011)B But 1+3=4 => (0001)B ^ (0011)B=(0010)B=2 !=4不成立 So 由上可以看出’^‘异或 是不会进位的加法,’&'按位与则 可以记录进位的位数。 C++: class Solution { public: int getSum(int a, int b) { unsigned int x
2021-12-10 19:36:56
837
原创 贪心算法-蓝桥杯初赛
题目描述: 输入: 输出: 样例输入: 5 jmcoding lq hello sto orz 样例输出: 867 题目分析: 1、通过题目分析 这个题目是求价值的最大值,使用贪心算法,而价值=单词首字母x单词长度x排列的ID号 2、然而我们已经知道单词的字母和长度是固定的了,主要的是这个ID,那么我们可以把字母和长度的乘积按照从小到大排序,是最大的值ID最大,那么最后的价值就一定会是最大。 代码如下: #include<algorithm> #include<iostream>
2020-08-09 22:31:25
275
原创 贪心算法-初赛
题目描述: 输入: 样例: 3 3 2 200 10 399 300 8 499 400 12 499 输出 31977 数据范围: 题目分析: 从题目分析这个题目属于贪心,因为他说在满足n天的要求,花费最少。然后题目的要求是可以在任意天采购任意柠檬,养乐多,那我们就可以每次使用柠檬,和养乐多最少的钱,除了第一天,因为你必须要满足他一天的数量。 代码如下: #include<iostream> #include<algorithm> using namespace std;
2020-08-09 00:35:41
195
原创 dfs-皇后
题目 1460: [蓝桥杯][基础练习VIP]2n皇后问题 题目描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。 输入 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0,表示对应的位置不可以放皇后。 输出 输出一个整数,表示总共
2020-07-31 16:26:04
175
原创 dfs-剪格子
题目 1432: [蓝桥杯][2013年第四届真题]剪格子 题目: 历届试题 剪格子 时间限制:1.0s 内存限制:256.0MB 问题描述 如下图所示,3 x 3 的格子中填写了一些整数。 ±-–±-+ |10 1|52| ±-***–+ |20|30 1| *******–+ | 1| 2| 3| ±-±-±-+ 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。 本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得
2020-07-25 10:35:18
153
转载 bfs-九宫格
题目 1426: [蓝桥杯][历届试题]九宫重排 题目描述: 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758 显然是按从上到下,从左到右的顺序记录数字,空格记为句点。 本题目的任务是已知九宫的初态和终态,求最少经过多少步的移动可以到达。如果无论多少步都无法到达,则输出-1。 样例输入: 12345678.
2020-07-22 14:36:34
430
1
原创 贪心算法-蓝桥杯
题目 1255: [蓝桥杯]能量项链, 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有 N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标 记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗 能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为mrn(Mars单位)
2020-07-21 14:17:51
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人