首页
关于
在线观影
数据统计
在线直播
在线壁纸
更多
友情链接
Search
1
记录一次网站的崩溃历史!
43 阅读
2
欢迎使用 Typecho
35 阅读
3
如何免费利用授权服务器(License Server)激活Jetbrains全家桶
31 阅读
4
宝塔9.5.0开心版本 - 破解版 - 无后门版本
28 阅读
5
力扣509斐波那契数列
27 阅读
C/C++
Python
技术分享
前端项目学习
Vue
日常分享
登录
/
注册
Search
标签搜索
苹果cms
苹果cms问题
苹果cmsseo
Vue学习
RSS
RSS订阅
Django
Pycharm
Python
前后端不分离项目
影视网站
前端项目
DeepSeek
蒸馏模型
LLM
大语言模型
VUE
海绵博客
订阅教程
信息获取
小菩提
累计撰写
92
篇文章
累计收到
11
条评论
首页
栏目
C/C++
Python
技术分享
前端项目学习
Vue
日常分享
页面
关于
在线观影
数据统计
在线直播
在线壁纸
友情链接
搜索到
64
篇与
的结果
2024-12-11
日更力扣830分配较大分组位置
在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 "xxxx" 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组 。找到每一个 较大分组 的区间,按起始位置下标递增顺序排序后,返回结果。示例 1:输入:s = "abbxxxxzzy"输出:[[3,6]]解释:"xxxx" 是一个起始于 3 且终止于 6 的较大分组。示例 2:输入:s = "abc"输出:[]解释:"a","b" 和 "c" 均不是符合要求的较大分组。示例 3:输入:s = "abcdddeeeeaabbbcd"输出:[[3,5],[6,9],[12,14]]解释:较大分组为 "ddd", "eeee" 和 "bbb"示例 4:输入:s = "aba"输出:[] int** largeGroupPositions(char * S, int* returnSize, int** returnColumnSizes) { int len = strlen(S); // 用于存储找到的较大分组区间的二维数组(动态分配) int** result = NULL; // 记录较大分组区间的数量 *returnSize = 0; if (len == 0) { return result; } int start = 0; for (int i = 0; i < len; i++) { int count = 1; while (i + 1 < len && S[i] == S[i + 1]) { count++; i++; } if (count >= 3) { // 重新分配内存以存储更多的区间 result = (int**)realloc(result, (*returnSize + 1) * sizeof(int*)); result[*returnSize] = (int*)malloc(2 * sizeof(int)); result[*returnSize][0] = start; result[*returnSize][1] = start + count - 1; (*returnSize)++; } start = i + 1; } // 为returnColumnSizes分配内存并设置每列的大小(这里每列固定为2) *returnColumnSizes = (int*)malloc((*returnSize) * sizeof(int)); for (int i = 0; i < *returnSize; i++) { (*returnColumnSizes)[i] = 2; } return result; }
2024年12月11日
2 阅读
0 评论
0 点赞
2024-12-06
日更力扣657机器人能否回到原点
今天终于把前几天的补上了,前几天各种原因把,因为回宿舍有点迟,也许是因为眼睛疼,反正基本没咋更新,今天赶紧补上。在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串 moves 表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。示例 1:输入: moves = "UD"输出: true解释:机器人向上移动一次,然后向下移动一次。所有动作都具有相同的幅度,因此它最终回到它开始的原点。因此,我们返回 true。示例 2:输入: moves = "LL"输出: false解释:机器人向左移动两次。它最终位于原点的左侧,距原点有两次 “移动” 的距离。我们返回 false,因为它在移动结束时没有返回原点。先上代码bool judgeCircle(char* moves) { int x=0,y=0; for(int i=0;moves[i];i++) { if(moves[i] == 'U')y++; else if(moves[i] == 'D')y--; else if(moves[i] == 'R')x++; else if(moves[i] == 'L')x--; } return !(x || y); } 这个是看评论一个大佬写的,我就没想到,我甚至想用二维数组来解决了,结果这几行就完全OK注意return !(x || y);他的作用是||是如果俩个都为0的话,那么是假,再!一下,就变成true了
2024年12月06日
4 阅读
0 评论
0 点赞
2024-12-06
日更力扣441排列硬币
你总共有 n 枚硬币,并计划将它们按阶梯状排列。对于一个由 k 行组成的阶梯,其第 i 行必须正好有 i 枚硬币。阶梯的最后一行 可能 是不完整的。给你一个数字 n ,计算并返回可形成 完整阶梯行 的总行数。示例 1:输入:n = 5输出:2解释:因为第三行不完整,所以返回 2 。示例 2:输入:n = 8输出:3解释:因为第四行不完整,所以返回 3 。我看了一眼大佬都是什么哈希啦 高斯啦 二分法啦,感觉没必要把,如果追求双百的话可以这样弄,但是我没弄,以后再说把先上我的代码int arrangeCoins(int n) { int i =0; while(n > i - 1){ n = n - i; i++; } return --i; }
2024年12月06日
3 阅读
0 评论
0 点赞
2024-12-06
日更488找到所有数组中消失的数组
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。代码结果。我这个貌似很多解答里面都没有,可能我这个办法比较少??哈希+暴力寻找int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize) { // 根据numsSize合理分配arr大小,这里多分配1位方便对应1到numsSize的范围 int* arr = (int*)malloc((numsSize + 1) * sizeof(int)); int *res = (int*)malloc(sizeof(int) * numsSize); int i = 0; // 先初始化arr数组元素为0 for (i = 0; i <= numsSize; i++) { arr[i] = 0; } // 标记出现过的数字,对应下标位置计数加1 for (i = 0; i < numsSize; i++) { arr[nums[i]]++; } int index = 0; // 遍历 [1, numsSize] 范围,找出计数为0的,也就是没出现过的数字 for (i = 1; i <= numsSize; i++) { if (arr[i] == 0) { res[index++] = i; } } free(arr); // 释放为arr动态分配的内存 *returnSize = index; return res; }
2024年12月06日
6 阅读
0 评论
0 点赞
2024-12-03
力扣617合并二叉树
给你两棵二叉树: root1 和 root2 。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为 null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。注意: 合并过程必须从两个树的根节点开始。输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输出:[3,4,5,5,4,null,7]示例 2:输入:root1 = [1], root2 = [1,2]输出:[2,2]直接上代码struct TreeNode* mergeTrees(struct TreeNode* root1, struct TreeNode* root2) { if(root1 == NULL){ return root1; } if(root2 == NULL){ return root2; } struct TreeNode* Node = malloc(sizeof(struct TreeNode)); node->val = root1->val1 + root2 ->val2; node->left = mergeTrees(root1->left,root2->left); node->right = mergeTrees(root1->right,root2->right); } return node;简单递归,没有什么难度
2024年12月03日
4 阅读
0 评论
0 点赞
1
...
6
7
8
...
13