
算法——剑指Offer解题
NewGe6
路虽远,行则将至。
展开
-
剪绳子——剑指Offer题解
把一根绳子剪成多段,并且使得每段的长度乘积最大。 n = 2 return 1 (2 = 1 + 1) n = 10 return 36 (10 = 3 + 3 + 4) 解题思路: 贪心 尽可能多剪长度为 3 的绳子,并且不允许有长度为 1 的绳子出现。如果出现了,就从已经切好长度为 3 的绳子中拿出一段与长度为 1 的绳子重新组合,把它们切成两段长度为 2 的绳子。 证明:...原创 2019-08-27 17:30:35 · 136 阅读 · 0 评论 -
数值的整数次方——剑指Offert题解
题目描述 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 解题思路: Java代码: public class Solution { double power(double base,int exp) { if (exp == 1) return base; if ((exp &...原创 2019-08-27 22:39:47 · 181 阅读 · 0 评论 -
打印从 1 到最大的 n 位数 ——算法
题目描述 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数即 999。 解题思路 由于 n 可能会非常大,因此不能直接用 int 表示数字,而是用 char 数组进行存储。 使用回溯法得到所有的数。 public class Main { public static void main(String[] args) {...原创 2019-08-28 17:22:43 · 183 阅读 · 0 评论