- 博客(17)
- 收藏
- 关注
原创 c++中if(a>0,a<5)和if(a>0&&a<5)的区别
c++中如果if语句里面的内容放着的是a>0,a<5,并且此时a=1,那么这时候if语句里面遵循的是最后一个表达式,也就是a<5,此时a>0不用去理会。当if语句里面写着的内容是a>0&&a<5的时候,这个时候就需要两个表达式同时满足,才会执行if语句。这个代码的运行结果是1,虽然a>1作为第一个条件,但是后面一个条件是a<5,if(a>2,a<5)遵循的是最后的条件。代码运行结果是:没有运行结果,因为既需要满足a>2,又要满足a<5,这时候1不满足>2,那么就会出现没有运行结果。
2024-07-10 20:29:08
205
原创 暴力解决力扣第121题(买卖股票的最佳时机)
要用暴力来解决这道题其实也很简单,就是每次依次找出这个点前面的最小值,然后用这个点减去前面的最小值,来得到一个差值,这道题的任务就是找到最大的差值。在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。
2024-07-03 16:44:34
296
原创 动态规划解决力扣第121题(买卖股票的最佳时机)
在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回。设计一个算法来计算你所能获取的最大利润。在这种情况下, 没有交易完成, 所以最大利润为 0。买入这只股票,并选择在。
2024-07-03 15:38:25
176
原创 动态规划(打家劫舍3)
其实这道题目无非就是当前结点拿与不拿,如果拿了那么相邻的结点将不能拿。但若是没有拿,那么这时候相邻的结点就可以选择拿与不拿,需要比较下哪种情况能够盗取的金额最高。之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为。小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7。小偷一晚能够盗取的最高金额 4 + 5 = 9。,小偷能够盗取的最高金额。
2024-07-03 12:00:12
295
原创 动态规划练习(力扣第213题.打家劫舍)
这道题不同于上一道题的点在于这道题中的所有房屋是围城一圈的,所以导致了第一个房屋和最后一个房屋是相邻的,所以我们不能同时取到他们两个。你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。,今晚能够偷窃到的最高金额。
2024-06-29 11:38:20
421
原创 动态规划练习(力扣第198题.打家劫舍)
首先,下面用到的arr的含义是什么,arr[n]代表了到n号房间可以偷到的最高金额。其次,这道题目其实无非就是两种情况,第一种情况是这个房间的现金我要偷(也就是下面的arr[i-2]+nums[i],第二种情况是这个房间的现金我不偷(也就是下面的arr[i-1])。你是一个专业的小偷,计划偷窃沿街的房屋。偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
2024-06-29 10:28:20
232
原创 完全背包问题(一维数组来实现)
完全背包问题不同于0-1背包问题的点在于:0-1背包对于一个物品只能拿一次,但是完全背包问题可以拿多次,从而来达到在有限背包容量内的价值最大化。一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,…,Wn,它们的价值分别为C1,C2,…,Cn,求旅行者能获得最大总价值。第一行:两个整数,M(背包容量,M≤200)和N(物品数量,N≤30);N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。仅一行,一个数,表示最大总价值。
2024-06-27 14:07:41
200
原创 完全背包问题(二维数组来实现)
完全背包问题不同于0-1背包问题的点在于:0-1背包对于一个物品只能拿一次,但是完全背包问题可以拿多次,从而来达到在有限背包容量内的价值最大化。设有n 种物品,每种物品有一个重量及一个价值。但每种物品的数量是无限的,同时有一个背包,最大载重量为M,今从n 种物品中选取若干件(同一种物品可以多次选取),使其重量的和小于等于M,而价值的和为最大。第一行:两个整数,M(背包容量,M<= 200)和N(物品数量,N<= 30);第2..N+1 行:每行二个整数Wi,Ui,表示每个物品的重量和价值。
2024-06-27 11:47:42
278
原创 python中的输入与输出
3.输出使用的是print,默认输出之后会换行,也就是默认格式为print(内容,end="\n"),这时候如果想要修改输出内容之后不以换行结束,那么这时候就可以修改这个end="想要结束的内容"。2.使用eval函数来实现输入,它会根据输入的内容自动转化为数字类型。那么上面的代码这时候还会报错吗?
2024-06-26 18:03:40
388
原创 python中turtle库的使用(海龟工具)
3.画笔状态图,内容为如何操作turtle的画笔状态。4.绘图基础,内容为使用turtle前必备的知识点。1.窗体类函数,内容为如何操作turtle的窗口。2.画笔运动类,内容为如何操作turtle的运动。
2024-06-26 17:44:16
189
原创 c++转python(必学基础语法知识点)
1.C++中的代码换成Python代码可以写为:print(i)2.as在python中的作用是重命名的作用,例如import turtle as t,那么这个时候turtle的名字就被改成了t,下次使用就可以直接使用t了3.assert函数的作用是假设这个条件成立,那么接下去会怎么样,用法如下:a=1assert a>0print(a)4,元组,列表,集合,字典的区别。
2024-06-23 10:34:38
871
原创 蓝桥杯(掌握轻松拿下省赛二等奖,自己记录的蓝桥杯知识点)
c++蓝桥杯知识c++自带的函数库1.find: 查找一个数组中某个元素的位置string s;cin>>s;cout<<s.find('a');//find函数,寻找字符串中某个字符在某个位置,如果没有的话,那么就会出现输出的是一个非常大的数字。2.字符串中substr的方法substr后面的参数有两个,分别是要输出的字符串的起点,第二个是要输出的字符串的长度,例子如下:#include<iostream> #include<str
2024-06-23 10:32:21
979
原创 0-1背包问题解决力扣第416题:分割等和子集
这道题可以把正整数和的一半作为背包容量,看下是否有物品的和为正整数和的一半,物品的价值和大小是同个数字,这道题也就变成了求背包总容量为sum/2的最大价值是否是sum/2,是的话就返回true,否则返回false。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。数组可以分割成 [1, 5, 5] 和 [11]。数组不能分割成两个元素和相等的子集。
2024-06-22 15:48:26
166
原创 0-1背包问题(二维数组来实现)
i++) //物品 { for(int j=1;:首先就是要初始化这个二维数组,让这个二维数组成为全局变量后,就会自动初始化为0,这时候如果这个物品比当前状态的背包体积大的话,那么这个二维数组a[i][j】的值就等于a[i-1】[j】,如果这个物品比当前状态要小的话,那么就可以放到里面进去,那么这时候就还有两种情况,分别就是尽管这个物品很小,但是我就是不放进去,那么就依旧是等于a[i-1】[j】,如果想要放进去的话,那么就是等于value[i】+a[i-1】【j-v[i】】
2024-06-12 14:30:26
266
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人