夜渡寒鸦呀
夜渡寒鸦呀
全部文章
分类
题解(57)
归档
标签
去牛客网
登录
/
注册
夜渡寒鸦呀的博客
全部文章
(共58篇)
题解 | #矩形覆盖#
C语言求解矩形覆盖 解题思路:对于2*n的一个矩形 去考虑一下右侧的组成形状 有两种可能:一种是竖着的2*1矩形,另一种是两个横着的2*1矩形。因此dp[n]=dp[n-1]+dp[n-2] /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * ...
2022-05-19
0
366
题解 | #把数字翻译成字符串#
C语言 把数字翻译成字符串 1. 解题思路 动态规划问题,对于一串字符 1223424220238012,不妨设求第n个字符的可能情况。那么首先需要考虑的是这个字符nums[n],有两种大的情况,1.能否和前一个字符组成10~26之间的数,自身能否独立成一个新的数。 case1: 自身为0,只能依附...
C
动态规划
2022-05-18
0
456
题解 | #跳台阶扩展问题#
C语言青蛙跳台阶扩展 思路: 考虑跳n级台阶,可以从(n-1)跳一层、(n-2)跳两层、(n-3)跳3层、、、(n-n)跳n层上来,所以dp[n]=dp[n-1]+dp[n-2]+...+dp[0] 同样的 dp[n+1]=dp[n]+dp[n-1]+dp[n-2]+...+dp[0] = 2*d...
C
动态规划
2022-05-18
0
335
题解 | #斐波那契数列#
C语言斐波那契数列 解题思路:和上一题的青蛙跳台阶一样 使用动态规划解决,但是时间复杂度是O(n),要是想将时间复杂度降到O(logn),emmmmm * * @param n int整型 * @return int整型 * * C语言声明定义全局变量请加上static,防止重复定...
C
动态规划
2022-05-18
0
336
题解 | #跳台阶#
C语言求解青蛙跳台阶问题 解题思路:很基本的动态规划问题。假设青蛙求跳n级台阶,那么青蛙的上一级台阶只能是(n-1)级台阶,或者是(n-2)级台阶,所有dp[n]=dp[n-1]+dp[n-2] 使用两个变量保存一下两个前驱dp即可。 * * @param number int整型 *...
C
动态规划
2022-05-18
0
345
题解 | #连续子数组的最大和(二)#
C语言求解连续子数组的最大和(二) 解题思路: 由于已经使用动态规划解决了连续子数组的最大和(一),那么思路相同,只不过这次的输出是要求输出这个连续子数组,那么可以添加一个变量,用于记录返回数组的末尾元素位置,同时还需要一个变量记录一下连续的数组长度。 遇到的坑: 2.1 由于遇到多个最优解...
C
动态规划
2022-05-17
2
524
题解 | #连续子数组的最大和#
C语言求解连续子数组的最大和 解题思路:动态规划(dp)问题,对于一个连续的数组:1 -2 3 10 -4 7 2 -5,当计算第i个dp时,此时需要根据dp[i-1]来推算出dp[i]的值,此时dp[i]相比于dp[i-1]的变数 只有a[i]这个值,接下来应该判断a[i]是否有可能添加到dp...
C
动态规划
2022-05-17
0
552
题解 | #数字序列中某一位的数字#
C语言求解数字序列第n位数字 思路:对于一个数字序列0123456789 1011121314... 做出以下的分析: 1位数区间 [0~9] 共10位 2位数区间 [10~99] 共90位 占据字符串90*2 = 180位 3位数区间 [100~999] 共900位 占据字符串 900*3 ...
C
2022-05-16
2
438
题解 | #字符串的排列#
C语言实现字符串的全排列 解题思路:还是以具体例子思考:从最简单的出发:一个字符:a,只有一种排列方式;两个字符:ab,排列方式有 ab,ba;三个字符,cab,由于 ab有两种排列方式 c这个字符可以与a b这两个字符任意调换位置。因此有 cab acb bac cba bca abc;以此类推...
C
2022-05-16
1
552
题解 | #数字在升序数组中出现的次数#
C语言求数字在升序数组中出现的次数 思路:思路简单 时间复杂度要求log2n,使用二分查找法找到数字k的位置 然后从这个位置左右遍历计算总数即可。 * * @param data int整型一维数组 * @param dataLen int data数组长度 * @param k i...
C
2022-05-13
0
309
首页
上一页
1
2
3
4
5
6
下一页
末页