题目描述 给你一根长度为n的绳子,请把绳子剪成m段(m.n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],...,k[m].请问k[0]xk[1]x...xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2.3.3的三段,此时得到的最大乘积是18. 输入描述: 输入一个数n,意义见题面.(2 <= n <= 60) 输出描述: 输出答案. 示例1 输入 8 输出 18 思路: 方法一:先列小的数找规律,发现最大乘积是2/3的组合 i…
题目 给你一根长度为n的绳子,请把绳子剪成m段 (m和n都是整数,n>1并且m>1)每段绳子的长度记为k[0],k[1],…,k[m].请问k[0]k[1]…*k[m]可能的最大乘积是多少?例如,当绳子的长度为8时,我们把它剪成长度分别为2,3,3的三段,此时得到的最大乘积是18. 解题思想 动态规划(具体解法及思路见代码注释) class Solution(): def maxProfuctAfterCutting(self,length): if length < 2: return…
剑指 Offer 60. n个骰子的点数 Offer_60 题目详情 题解分析 package com.walegarrett.offer; /** * @Author WaleGarrett * @Date 2021/2/12 18:29 */ /** * 题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s.输入n,打印出s的所有可能的值出现的概率. * 你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率. */ impor…
剑指 Offer 46. 把数字翻译成字符串 Offer_46 题目描述 题解分析 本题的解题思路是使用动态规划,首先得出递推公式如下 dp[i] = dp[i-1]+dp[i-2](如果s[i-1]+s[i]可以形成合法的数字:10-25) dp[i] = dp[i-1](如果s[i-1]+s[i]不能形成合法的数字:小于10或者大于25) 动态规划要注意数组的大小,需要多开一个元素的空间. java代码 package com.walegarrett.offer; /** * @Author…
[题目]把只包含因子2.3和5的数称作丑数(Ugly Number). * 例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 解法一:此解提交运行超时,不推荐. package com.exe11.offer; /** * [题目]把只包含因子2.3和5的数称作丑数(Ugly Number). * 例如6.8都是丑数,但14不是,因为它包含因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. * @auth…
数组中重复的数:题目:找出数组中重复的数,题目描述:在一个长度为n的数组里的所有数字都在0到n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字.例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3. 分析: <一>首先进行重新排序然后从头进行扫描即可.1.比较下标,如果下标index等于数组num[index]继续比较下一个如果不等于:将index与num[index]比较:如果…
题目描述 一个链表中包含环,请找出该链表的环的入口结点. 初步想法是每个节点做几个标记,表示是否被访问过,那么遍历链表的时候就知道哪个被访问到了.但是不会实现. 另一个直觉是判断链表有环的算法中出现过的策略,分别按1x和2x速度遍历,总会相遇.假设环长为n. 容易知道,当1x的指针p1和2x的指针p2相遇时,p1走了x步,p2走了2x步,而p2比p1多走的,有两部分:(1)环内部,p1还没有走过的:(2)换内部,p1和p2重合的 这两部分加起来就是整个环.那么其实p2比p1多走的就是这么一个环的…
int maxProduct(int length){ ) ; ) ; ) ; ; == ) numof3 -= ; )/; ,numof3))*(,numof2)); }…
1.排序算法比较: 2.java实现 快排: /** * 快排 * * @since 2019年2月26日 下午1:37:34 * @author xuchao */ public class QuickSoft { public static void quickSoft(int[] data,int start,int end) { if(start>=end) { return; } int m = quickSoftPartition(data, start, end); quickSo…
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页:贤余超 剑指 Offer 03. 数组中重复的数字 // 方法1: // hash表来做:空间换时间的思想 // 时间复杂度 O(n) // 空间复杂度 O(n) public int findRepeatNumber(int[] nums) { Set<Integer> hashset = n…