C语言-力扣
文章平均质量分 56
用C语言刷遍力扣算法题
地中海~
美食
展开
-
LeetCode: 209 长度最小的子数组
rel=j-i+1;// 当前连续子数组的长度。//如果result的值没有变化,说明没有找到满足条件的子数组,返回0。int result=numsSize+1, //函数返回值。int sum=0;//连续子数组 元素总和。int rel=0;如果不存在符合条件的子数组,返回。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。原创 2024-04-16 21:16:11 · 348 阅读 · 0 评论 -
LeetCode:1两数之和 C语言
两数之和 c语言 暴力解法原创 2024-04-13 04:35:52 · 293 阅读 · 0 评论 -
LeetCode:203移除链表元素 C语言
/删除数值与val相等的结点。//head头结点可能会更新,输出虚拟头结点的next。//反之temp后移。,请你删除链表中所有满足。给你一个链表的头节点。原创 2024-03-26 10:35:04 · 290 阅读 · 0 评论 -
LeetCode:34在排序数组中查找元素的第一个和最后一个位置 C语言
/和目标值相同置1,否则置0。// 返回大小为 *returnSize =2的数组。请你找出给定目标值在数组中的开始位置和结束位置。给你一个按照非递减顺序排列的整数数组。//返回的数组必须被 malloced。返回的数组必须被 malloced。如果数组中不存在目标值。原创 2024-03-26 08:13:19 · 348 阅读 · 0 评论 -
LeetCode:718最长重复子数组 C语言
长度最长的公共子数组是 [3,2,1]。、长度最长的子数组的长度。原创 2024-03-25 19:14:59 · 452 阅读 · 1 评论 -
LeetCode:674最长连续递增序列 C语言
尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。最长连续递增序列是 [1,3,5], 长度为3。最长连续递增序列是 [2], 长度为1。给定一个未经排序的整数数组,找到最长且。,并返回该序列的长度。)确定,如果对于每个。就是连续递增子序列。原创 2024-03-25 18:05:04 · 354 阅读 · 1 评论 -
LeetCode:300最长递增子序列 C语言
/数组容量太大时,初始化需注意,若写成dp[2500] = {1};//return不是dp[numsize-1],而是遍历找出最大的dp[i]是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。最长递增子序列是 [2,3,7,101],因此长度为 4。dp[i] = 1;//初始化用循环较稳妥。,找到其中最长严格递增子序列的长度。原创 2024-03-25 16:28:46 · 462 阅读 · 1 评论 -
LeetCode:62不同路径 C语言
/ 数组从0开始,第m*n是数组中的dp[m-1][n-1]机器人试图达到网格的右下角(在下图中标记为 “Finish” )。// 初始化第1行全为0(数组中从0开始数)dp[j][0] = 1;// 初始化第1列全为0(数组中从0开始数)网格的左上角 (起始点在下图中标记为 “Start” )。1. 向右 -> 向下 -> 向下。2. 向下 -> 向下 -> 向右。3. 向下 -> 向右 -> 向下。问总共有多少条不同的路径?原创 2024-03-24 11:02:44 · 328 阅读 · 1 评论 -
LeetCode:27移除元素 c语言
/示例 1: 给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2,//给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,//函数应该返回新的长度 5, 并且 nums 中的前五个元素为 0, 1, 3, 0, 4。//示例 2: 给定 nums = [0,1,2,2,3,0,4,2], val = 2,//元素的顺序可以改变。//最后慢指针的大小就是新的数组的大小。// 新数组:不含有目标元素的数组。//快指针:寻找新数组的元素。原创 2024-03-20 17:06:14 · 494 阅读 · 1 评论 -
LeetCode:70爬楼梯 C语言
int dp[45];//dp[i]:到达第i阶有dp[i]种方法。// dp[]初始化。你有多少种不同的方法可以爬到楼顶呢?1. 1 阶 + 1 阶 + 1 阶。有两种方法可以爬到楼顶。1. 1 阶 + 1 阶。有三种方法可以爬到楼顶。2. 1 阶 + 2 阶。3. 2 阶 + 1 阶。原创 2024-03-24 09:18:15 · 245 阅读 · 1 评论 -
LeetCode:746使用最小花费爬楼梯 C语言
支付 1 ,向上爬两个台阶,到达下标为 2 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 4 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 6 的台阶。- 支付 1 ,向上爬一个台阶,到达下标为 7 的台阶。- 支付 1 ,向上爬两个台阶,到达下标为 9 的台阶。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。- 支付 1 ,向上爬一个台阶,到达楼梯顶部。你将从下标为 1 的台阶开始。原创 2024-03-24 10:08:16 · 372 阅读 · 1 评论 -
LeetCode:509斐波那契数 C语言
F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。原创 2024-03-24 08:49:36 · 385 阅读 · 1 评论 -
Leet Code:704二分查找 c语言
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。// target 在左区间,所以[left, middle - 1]// target 在右区间,所以[mid+1, right]while (left <= right) { // 数组区间为闭区间时,left=right有意义。// 数组中找到目标值,直接返回下标。原创 2024-03-22 20:15:56 · 219 阅读 · 1 评论 -
LeetCode:35 搜索插入位置 c语言
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。else //存在:目标值在左区间或mid处,不存在:左区间或者left处。if(nums[mid] < target)//目标值在右区间。//找到目标值或没找到直接在mid出插入。请必须使用时间复杂度为 O(log n) 的算法。原创 2024-03-22 20:08:25 · 379 阅读 · 1 评论