自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 动态规划刷题(5)

5)返回值:子数组的最大和不一定是以最后一个位置为结尾,还有可能是以数组中的某一个位置为结尾的最大和,题目的状态表示是以i位置为结尾的所有子数组的最大和,这个最大和可以具体分为两种情况。一个正数,此时以i位置为结尾的子数组的最大和当然要加上前面的正数了也就是。2)加上虚拟节点之后要保证现在的dp表和原来的dp表的映射关系是相同的。当前i位置就是以i位置为结尾子数组的最大和--array[i]1)虚拟节点里面的值要保证后面再进行填表的时候值是正确的。这种情况是i前面的以i-1位置为结尾的子数组的最大和。

2023-07-04 11:20:12 193

原创 动态规划刷题(4)

3)初始化,保证在进行计算dp[i][j]的时候数组下标不会发生越界,假设此时要进行填写dp[0][0]那么此时再进行计算dp的时候此时就会发生数组越界访问。5)返回值:最后的返回值应该是要么涂上蓝色的最小花费,要么是涂上红色的最小花费,要么是涂上绿色的最小花费,照这三种情况的最小值。4.2)dp[i][1]表示在第i天结束的时候是出于可以交易的状态,此时的最大利润。1)dp[i][0]表示:粉刷到i位置的时候(i位置表示第i间房子)2)dp[i][1]表示:粉刷到i位置的时候(i位置表示第i间房子)

2023-07-02 15:07:38 154 1

原创 动态规划刷题(3)

一)按摩师:1)定义一个状态标识:再进行分析题目的时候,这是一个总左向右推导的模型,根据经验+题目要求dp[i]表示选择到i位置的时候,此时的最长预约时间2)根据状态表示推导状态转移方程:从最近的一步划分问题此时选择了i位置的值,那么此时一定是不会选择i-1位置的值,此时f(i)=g(i-1)+array[i]2)g(i)表示不选择i这个位置的值,nums[i]必不会选,此时选择的最长预约市场就是2.1)如果i位置不进行选择,如果选择i-1位置的值,那么g(i)=f(i-1)

2023-06-30 21:55:38 109

原创 动态规划刷题(2)

一)确定一个状态表示:经验+题目要求1)以某一个i,j为结尾的时候,巴拉巴拉dp[i][j]二)确定一个状态转移方程:根据最近的一步,进行划分问题1)当前我已经走到了i,j位置,那么上一步,要么我是从(i-1,j)的位置走过来的,三)初始化:在填写dp表的时候保证不越界当你进行填表的时候,其实你只需要保证4)为了更方便地进行初始化,我们采用虚拟节点的方式:1)虚拟节点的值保证后面填表的结果是正确的,保证你加了虚拟节点之后,我们原来没有加虚拟节点的那些初始化的值结果是正确的2)下标的映射,

2023-06-28 12:00:10 461 1

原创 动态规划刷题(1)

2.1)题目如何要求,我们就如何定义状态表示2.2)经验+结合题目要求。

2023-06-23 17:20:39 321 1

原创 刷题(4)

2)首先定义一个下标i在数组的第一个位置,i向后走三步,得到一个字符串,统计这个字符串各个字符出现的次数放到一个哈希表hash2中然后比较hash1和hash2中的值是否相等即可。1)首先进行统计出p字符串中的各个字符所占的个数,用一个哈希表hash1来进行标识。1)排序+一个字符一个字符的进行比较,都相等的话,就是互为异位词。思路2:滑动窗口+哈希表(统计每一个字符在滑动窗口中出现的次数)之前的题中,所写的滑动窗口的窗口的大小的值都是固定的,找到字符串中的所有字母异位词。

2023-06-18 21:44:13 93 1

原创 初始C语言(2)

计算一个字符串的长度:1)int len=sizeof(字符串数组的名字)/sizeof(字符串数组的第一个元素)两个字符串的比较:可以使用库函数strcmp而不能使用等号C语言实现猜数字。

2023-06-17 16:18:33 114 1

原创 刷题(3)

1)此时经过三次枚举发现,right在每一次新的循环这里都发现right都走向了相同的位置,所以说以d,e为left指针的开始位置,right最多也就走到了a位置,因为最右边的a决定了right最终只能走到5。1)首先固定i的位置,让j从i的位置开始走,如果这个字符没有出现过,存放到hashSet里面,让当前长度+1,在和max值进行比较,如果当前窗口的值大于最大长度,那么就进行更新。解法二:滑动窗口:双指针同向不会回退,在[left,right)区间之内维护字符的信息。2)如果这个字符出现过,直接。

2023-06-16 21:54:43 101 1

原创 刷题(2)

2.3)找到一种结果之后,left指针和right指针要跳过重复元素。如果数组已经有序了,请先想到两个算法,双指针和二分查找。2.2)使用HashSet集合的方式实现去重。2.1)使用Stream流的方式实现去重。所以top指向的下标的元素要大于等于0;一)第N个泰波那契数。

2023-06-15 21:50:22 233 1

原创 刷题(1)

left+1,right-1]表示的是0元素[right,n-1]表示的是待处理的区间。

2023-06-15 11:48:29 127 1

原创 初始C语言(1)

直接运行下面的代码会出现报错,这个函数或者变量可能会失效,考虑使用scanf_f来代替,如果让这个描述失效,使用#define _CRT_SECURE_NO_WARNINGS,此时代码就可以运行了。因为scanf_s是编译器vs提供的函数,并非C语言提供的库函数,当你的代码中使用了scanf_s函数在非vs中的编译器是不能够编译通过的,这样就降低了代码的可移植性。注意在C语言中字符串的结束标志是一个\0的转义字符,再进行计算字符串长度的时候\0是结束标志,不算做字符串的内容。因为会有可能导致溢出,

2023-06-12 17:30:34 82 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除