![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python 的一些编程题
文章平均质量分 69
自己在力扣上刷到的一些编程题目的个人题解
世界的隐喻
我是个在黑暗中大雪纷飞的人啊
展开
-
遗传算法求解问题(1)
N = 50 # 种群规模 T = 200 # 迭代次数 PM = 0.05 # 变异概率 PC = 0.7 # 交换概率 num_list_len # 数组长度 num_list # 数组列表。原创 2022-12-09 18:23:20 · 605 阅读 · 0 评论 -
力扣题(6) —— z字形变换
一开始真的不知道怎么做,那就只好把问题写下来找规律了,为了规律可见,我们将字符串的索引进行排序。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。我的建议是找到规律后自己实现一下代码,说实话我自己的代码也写得很乱(毕竟是小白)还是以索引为例(其实直接用字符串也可以,因为不用刻意找规律)不过要把这样的思路转换成代码还是比前一个解法要困难一点的。...原创 2021-01-12 11:53:40 · 184 阅读 · 0 评论 -
力扣题(5)—— 最长回文子串
题目让我们求什么,就把什么设置为状态题目求s中最长的回文子串,那就判断所有子串是否为回文子串,选出最长的因此dp[i][j]表示s[ij+1]是否为回文子串(这里+1是为了构造闭区间)原创 2022-08-02 17:04:02 · 181 阅读 · 0 评论 -
力扣题(3)—— 无重复字符的最长子串
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。原创 2022-07-28 15:55:11 · 113 阅读 · 0 评论 -
力扣题(2)—— 两数相加
给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字0之外,这两个数都不会以0开头。...原创 2022-07-28 09:42:14 · 94 阅读 · 0 评论 -
力扣题(1)—— 两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。...原创 2022-07-27 16:18:22 · 109 阅读 · 0 评论 -
动态规划:最长上升子序
题目描述给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-increasin原创 2021-01-08 23:09:14 · 154 阅读 · 2 评论 -
动态规划:最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路分析最大子序和是一道经典的动态规划题,当然看到原创 2020-12-17 00:12:26 · 154 阅读 · 0 评论 -
动态规划:爬楼梯
题目描述一个 N 阶的楼梯,每次能走 1~2 阶,问走到 N 阶一共多少种走法?思路分析法一:纯数学刚开始遇到这题时,我想到的是数学的做法,也就是排列组合。数学的解法是这样的:以11阶台阶为例,所以此时的代码就是这样的n = int(input())count = 0a = n // 2b = 1if n % 2 == 0: while b <= a: count += (math.factorial(n - b)//(math.factoria原创 2020-12-14 13:08:09 · 277 阅读 · 0 评论 -
动态规划:多重背包问题
题目描述有 N 种物品和一个容量为 W 的背包,每种物品都有无限件可用。第 i 种物品的重量是 w[i],价值是 v[i],最多有 s[i] 件求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。输入格式:第一行两个整数, N 和 V ,用空格隔开,分别表示物品总数和背包的容积接下来有 N 行。每行三个整数,w[i], v[i], s[i] 用空格隔开,分别表示第 i 种物品的体积和价值和数量输出格式:输出一个整数,表示最大价值。输入样式:4 51 2 3原创 2020-12-14 11:14:40 · 345 阅读 · 0 评论 -
动态规划:完全背包问题
题目描述有 N 种物品和一个容量为 W 的背包,每种物品都有无限件可用。第 i 种物品的重量是 w[i],价值是 v[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。可以看到,与0-1背包问题不同的地方时,完全背包问题允许一件物品无限次的出现。输入格式:第一行两个整数, N 和 V ,用空格隔开,分别表示物品总数和背包的容积接下来有 N 行。每行两个整数,用空格隔开,分别表示第 i 种物品的体积和价值输出格式:输出一个整数,表示最大价值。输入样式:原创 2020-12-13 00:55:54 · 296 阅读 · 1 评论 -
动态规划:0-1背包问题
关于动态规划比较粗糙的做法,时间和空间都没优化,但自以为对初学者还是比较好理解的。题目描述有 N 种物品和一个容量为 W 的背包,每种物品只有一件。第 i 种物品的重量是 w[i],价值是 v[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。输入格式:第一行两个整数, N 和 V ,用空格隔开,分别表示物品总数和背包的容积接下来有 N 行。每行两个整数,用空格隔开,分别表示第 i 种物品的体积和价值输出格式:输出一个整数,表示最大价值。输入样式:4原创 2020-12-11 20:33:10 · 157 阅读 · 0 评论