![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题啊
骚小孩呀
这个作者很懒,什么都没留下…
展开
-
最优分解问题(JAVA)
设n是一个正整数,现在要求将n分解为若干个互不相同的自然数的和,使这些自然数的乘积最大。 输入 10 输出 30 (被分解为5 2 3) 分析: 一个数被分为任意2个为不为一的数都大于等于原数。那就可以根据这条性质去用贪心策略解决问题。 那从2开始,如果能分解出来就要 10-2=8 8-3 =5 5-4=1<4 到了5那里就是我们的判断条件,因为题目要求分解为不相同的自然数...原创 2019-10-31 10:19:52 · 699 阅读 · 2 评论 -
跳跃游戏(JAVA)
给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4] 输出: true 解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。 示例 2: 输入: [3,2,1,0,4] 输出: false 解释: 无论怎...原创 2019-10-27 23:15:36 · 698 阅读 · 0 评论 -
最大公共子序列长度(JAVA版)
一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有:Xij=Zj 例如,序列z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B>的子...原创 2019-10-16 21:32:33 · 453 阅读 · 0 评论 -
01背包问题(JAVA版)
给定 n 个物品和一个容量为 W 的背包,物品 i 的重量是 wi,其价值为 vi 。 应该如何选择装入背包的物品,使得装入背包中的物品的总价值最大? (物品不能重用) 例:物品体积:2 3 4 5 物品价值 3 4 5 6 背包体积 8 输出10 public static int getMaxValue(int c[],int v[],int j) {...原创 2019-10-16 21:15:51 · 160 阅读 · 0 评论 -
最小m段和(JAVA版)
给定n个整数组成的序列,现在要求将序列分割为m段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小? 样例输入 1 1 10 样例输出 10 样例输入 9 3 9 8 7 6 5 4 3 2 1 样例输出 17 public static int getMin(int a[], int len) { int d...原创 2019-10-16 21:05:27 · 723 阅读 · 0 评论 -
编辑距离问题(JAVA版)
最近好久不写博客了,一直被动态规划狂虐 设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括(1)删除一个字符; (2)插入一个字符; (3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到 B的编辑距离,记为d(A,B)。对于给定的字符串A和字符串B,计算其编辑距离 d(A,B)。 例:fxpims xwrs 结果:4...原创 2019-10-16 20:47:50 · 694 阅读 · 2 评论 -
石子合并问题(JAVA版)
一条直线上摆放着一行共n堆的石子。现要将石子有序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆石子数记为该次合并的得分。 请编辑计算出将n堆石子合并成一堆的最小得分和将n堆石子合并成一堆的最大得分。 Input 输入有多组测试数据。 每组第一行为n(n<=100),表示有n堆石子,。 二行为n个用空格隔开的整数,依次表示这n堆石子的石子数量ai(0<ai&...原创 2019-10-16 20:57:13 · 1042 阅读 · 0 评论 -
棋盘覆盖
给出一个2的k次方乘以2的k次方的棋盘,并任意给出一个奇异点(棋盘中一个位置),用L型(占3个格)给他铺满除奇异点以外的区域,要求不能重复。就好像下面那样(贼拉丑) 思路: 采用分治的思路,将棋盘分区不断缩小,每次涂没有涂过的3个面挨着分界线的交点的那几块。 红的像屎一样的那个是奇异点,红色线条是第一次分块,分完后,涂1的块。 然后再把分的4个块再分,黄色的线是第二次分块,分完后,...原创 2019-09-09 23:53:48 · 116 阅读 · 0 评论 -
LeetCode-2. 两数相加
问题描述: 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -&...原创 2019-07-06 20:39:54 · 92 阅读 · 0 评论 -
LeetCode-8.字符串转换整数
题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字...原创 2019-07-08 21:53:29 · 399 阅读 · 0 评论 -
LeetCode-3. 无重复字符的最长子串
问题描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。 示例 3: 输入: "pwwkew" 输出: 3 解释: 因为无...原创 2019-07-07 21:01:59 · 70 阅读 · 0 评论