- 博客(4)
- 收藏
- 关注
原创 6.3捡起刷题
1.什么是动态规划? DP算法(Dynamic Programming,俗称动态规划)是最经典算法之一,步骤一、定义数组元素的含义由于我们的目的是从左上角到右下角,最小路径和是多少,那我们就定义 dp[i] [j]的含义为:当机器人从左上角走到(i, j) 这个位置时,最小的路径和是 dp[i] [j]。那么,dp[m-1] [n-1] 就是我们要的答案了。注意,这个网格相当于一个二维数组,数组是从下标为 0 开始算起的,所以 由下角的位置是 (m-1, n - 1),所以 dp[m-1] [n-1]
2022-06-04 01:29:37
91
1
原创 二分查找第二天
34M在排序数组中查找元素的第一个和最后一个位置 1.分析二分查找的一个技巧是:不要出现 else,而是把所有情况用 else if 写清楚,这样可以清楚地展现所有细节。 2.另外声明一下,计算 mid 时需要防止溢出,代码中 left + (right - left) / 2 就和 (left + right) / 2 的结果相同,但是有效防止了 left 和 right 太大直接相加导致溢出。 一、寻找一个数(基本的二分搜索) int binarySearch(in..
2022-05-08 22:17:39
98
原创 时间复杂度
时间复杂度: 时间复杂度是指执行算法所需要的计算工作量。 重点在其计算方法: 一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记:T(n)=O(f(n))。 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出T(n)的同数量级(它的同数量级有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n)=该数量级,
2022-05-07 13:48:37
653
原创 二分查找第一天
E easy M medium H hard 力扣704二分查找E 取中位数的方法 int mid=left+(right-left)/2 找不到返回-1 循环条件while(left<=right) mid要在循环中定义 35搜索插入位置E 1.if target <nums[0] return 0 2.if target>nums[numsize-1] retu...
2022-05-07 12:40:12
120
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人