- 博客(29)
- 收藏
- 关注
原创 LeetCode第414场周赛题解(c++)
给你一个字符串date,它的格式为yyyy-mm-dd,表示一个公历日期。date可以重写为二进制表示,只需要将年、月、日分别转换为对应的二进制表示(不带前导零)并遵循的格式。返回date的表示。100000100000, 10 和 11101 分别是 2080, 02 和 29 的二进制表示。11101101100, 1 和 1 分别是 1900, 1 和 1 的二进制表示。date[i]date这个题老实说只要把函数记住就行。
2024-09-09 17:02:55 305
原创 leetcode第138场双周赛题解(c++)
给你三个整数num1num2和num3。数字num1num2和num3的数字答案keykeyinum1num2num3i请你返回三个数字前导 0 的数字答案。0补前导 0 后,num1变为"0001"num2变为"0010"num3保持不变,为"1000"。key1key2key3key4所以数字答案为"0000",也就是 0。7771。
2024-08-31 23:16:40 494
原创 Leetcode第136场双周赛题解(c++)
看到这个题,第一想法就是遍历pick[]数组了,然后vector<unordered_map<int,int> > colorCount(n)来记录玩家的颜色球数;也是好久没有更新力扣比赛的题解了,前段时间也是比较忙(说的好像现在不忙一样哈哈),像我等菜鸟,一般都是保二进三四不写的,笑死。玩家 0 和玩家 1 是胜利玩家,玩家 2 和玩家 3 不是胜利玩家。玩家 2 是胜利玩家,因为玩家 2 获得了 3 个颜色为 4 的球。将高亮的格子翻转,得到所有行都是回文的。将高亮的格子翻转,得到所有列都是回文的。
2024-08-03 23:58:25 1025
原创 LeetCode第131场双周赛C++题解
给你一个数组nums,数组中的数字出现一次,出现两次。请你返回数组中所有出现两次数字的按位XOR值,如果没有数字出现过两次,返回 0。1nums中唯一出现过两次的数字是 1。0nums中没有数字出现两次。3数字 1 和 2 出现过两次。。这个题里面的数字在1-50之间,所以可以直接计数排序,如果count[i]==2,那么ans^i。
2024-05-27 21:05:23 826
原创 并查集练习
如果我们指定,a = 1 且 b = 1,那么可以满足第一个方程,但无法满足第二个方程。没有办法分配变量同时满足这两个方程。给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。我们可以指定 a = 1 且 b = 1 以满足满足这两个方程。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回。
2024-05-23 23:16:32 246
原创 leetcode第398场周赛c++题解
如果数组的每一对相邻元素都是两个奇偶性不同的数字,则该数组被认为是一个。Aging 有一个整数数组nums。如果nums是一个,返回true,否则返回false。nums = [1]true只有一个元素,所以答案为true。true只有两对相邻元素:(2,1)和(1,4),它们都包含了奇偶性不同的数字,因此答案为true。falsenums[1]和nums[2]都是奇数。因此答案为false。
2024-05-20 21:07:07 816
原创 算法学习之DFS(深度优先搜索)+并查集模板
深度优先搜索(缩写DFS)有点类似广度优先搜索,也是对一个连通图进行遍历的算法。它的思想是从一个顶点V0开始,沿着一条路一直走到底,如果发现不能到达目标解,那就返回到上一个节点,然后从另一条路开始走到底,这种尽量往深处走的概念即是深度优先的概念。
2024-04-11 13:11:44 1678 1
原创 算法学习之BFS(广度优先搜索)
广度优先搜索算法的搜索步骤一般是:(1)从队列头取出一个结点,检查它按照扩展规则是否能够扩展,如果能则产生一个新结点。(2)检查新生成的结点,看它是否已在队列中存在,如果新结点已经在队列中出现过,就放弃这个结点,然后回到第(1)步。否则,如果新结点未曾在队列中出现过,则将它加入到队列尾。(3)检查新结点是否目标结点。如果新结点是目标结点,则搜索成功,程序结束;若新结点不是目标结点,则回到第(1)步,再从队列头取出结点进行扩展。最终可能产生两种结果:找到目标结点,或扩展完所有结点而没有找到目标结点。
2024-04-11 00:38:42 243 1
原创 LeetCode第392场周赛题解(c++)
给你一个整数数组nums。返回数组nums中或的最长非空子数组的长度。2nums中严格递增的子数组有[1][2][3][3][4]以及[1,4]。nums中严格递减的子数组有[1][2][3][3][4][3,2]以及[4,3]。因此,返回2。1nums中严格递增的子数组有[3][3][3]以及[3]。nums中严格递减的子数组有[3][3][3]以及[3]。因此,返回1。3nums中严格递增的子数组有[3][2]以及[1]。nums中严格递减的子数组有[3][2][1][3,2][2,1]以及。
2024-04-07 21:55:37 584
原创 LeetCode第127场双周赛题解(c++)
给你一个整数数组nums和一个整数k。如果一个数组中所有元素的按位或运算OR的值为k,那么我们称这个数组是。请你返回nums中子数组的长度,如果特别子数组不存在,那么返回-1。1子数组[3]的按位OR值为3,所以我们返回1。3子数组[2,1,8]的按位OR值为11,所以我们返回3。1子数组[1]的按位OR值为1,所以我们返回1。
2024-04-02 21:19:27 766 1
原创 leetCode第391场周赛题解(c++)
如果一个整数能够被其各个数位上的数字之和整除,则称之为给你一个整数x。如果x是,则返回x各个数位上的数字之和,否则,返回-1。x = 189x各个数位上的数字之和为9。18能被9整除。因此18是哈沙德数,答案是9。x = 23-1x各个数位上的数字之和为5。23不能被5整除。因此23不是哈沙德数,答案是-1。
2024-03-31 21:48:06 601 1
原创 哈夫曼编码题目
在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1�−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。
2024-03-28 23:07:52 347 1
原创 滑动窗口练习(LeetCode)C++
给你一个的整数数组nums,其中nums[i]表示第i名学生的分数。另给你一个整数k。从数组中选出任意k名学生的分数,使这k个分数间和的达到。返回可能的。0选出 1 名学生的分数,仅有 1 种方法:- [] 最高分和最低分之间的差值是 90 - 90 = 0可能的最小差值是 02选出 2 名学生的分数,有 6 种方法:- [,1,7] 最高分和最低分之间的差值是 9 - 4 = 5- [,4,,7] 最高分和最低分之间的差值是 9 - 1 = 8- [,4,1,
2024-03-26 11:14:28 569
原创 Leetcode第389场周赛
示例 1:输入:s = "leetcode"输出:true解释:子字符串 的长度为 ,它也出现在 中。示例 2:输入:s = "abcba"输出:true解释:所有长度为 的子字符串 、、、 也都出现在 中。示例 3:输入:s = "abcd"输出:false解释:字符串 中不存在满足「在其反转后的字符串中也出现」且长度为 的子字符串。提示:3084.统计以给定字符开头和结尾的子字符串总数示例 1:输入:s = "abada", c = "a"输出:6解释:以 开头和结尾的子字符串有
2024-03-19 17:34:18 638 1
原创 基数排序(c++实现)
这块,看上面的图就可以知道,刚开始buckets[]数组存的只是个数,那么累加之后不就是整个数组的位置了吗,然后我们从所给待排序数组的倒序开始,一个个按照a[i]/exp%10得出在buckets[]的值,也就是output[]的位置了,不过由于数组位置从0开始得减一。这个里面的动态演示就很形象。
2024-03-19 15:54:54 364 1
原创 【CCF CSP】2023 12-2 因子化解(c++ 简单求解)
【代码】【CCF CSP】2023 12-2 因子化解(c++ 简单求解)
2024-03-10 16:37:38 348 3
原创 算法(最短路径dijkstra算法实现)
然后在距离矩阵dist[]里面,初始化成源点到各个点的直接距离(注:在构建邻接矩阵时,即使图中源点到某点没有直接路径,这里将其设为了INFINITE(100))。然后就是path[]数组,记录前驱的,这里其实可以直接写作path[i]=src的,因为本来就是源点到每个点的直接距离。注意:这块的INFINITE,我并没有设置成那篇文章里面的,好像那样的话,就成-1了,在我这里是不合适的。这个过程是会进行vexCounts-1次,每次都选剩下没有考虑的点中,dist[]值最小的。我的思路是参考这篇文章的。
2024-03-03 16:47:03 381
原创 动态规划(最长公共子序列)
其实感觉实现起来还是蛮简单的,但是当时一直结果不对,这种情况其实一般就是边界这块有问题,到底是i还是i-1,是>还是>=这些往往是需要我们自己注意的。
2024-03-01 00:10:36 224 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人