
剑指Offer-java篇
针对一些常见java算法面试题求解。
晓处微寒
这个作者很懒,什么都没留下…
展开
-
空格替换
空格(字符)替换 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路://方法1:用空格扩容,数组倒序添加 //方法2:直接用replace函数 //方法3:申请额外数组空间 代码: package 剑指Offer; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStrea原创 2020-09-14 11:05:20 · 173 阅读 · 0 评论 -
剪绳子
剪绳子 题目描述 给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1,m<=n),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 输入描述: 输入一个数n,意义见题面。(2 <= n <= 60) 输出描述: 输出答案。 示例1 输入 8 输出 18 思路:対可能出现的分段数进行一个遍历,对于某一个分段数尽可能分原创 2020-09-12 23:42:19 · 145 阅读 · 1 评论 -
兔子问题
Java兔子问题 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? * 思路:兔子的对数为1,1,2,3,5,8,13…*。是不是很熟悉,这不就是斐波拉契数列咩。 代码如下: package 剑指Offer; public class RabbitInMonth { public static int Sum(int month) { int sum=0; if(month==1||month=原创 2020-09-12 22:45:14 · 155 阅读 · 0 评论