
力扣(剑指offer)
作为一个小菜鸟,唯有刷题是王道
yuan_yiyi
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 17. 打印从1到最大的n位数
问题: 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 解答: class Solution { public int[] printNumbers(int n) { int[] a = new int[(int)Math.pow(10,n)-1]; for(int i =1 ;i<Math.pow(10,原创 2020-08-12 14:54:40 · 162 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方
问题: 实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。 示例: 输入: 2.00000, 10 输出: 1024.00000 输入: 2.10000, 3 输出: 9.26100 输入: 2.00000, -2 输出: 0.25000 解释: 2-2 = 1/22 = 1/4 = 0.25 解答: class Solution { public double myPow(double原创 2020-08-12 11:24:34 · 135 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
问题: 请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 示例: 输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 ‘1’。 输入:00000000000000000000000010000000 输出:1 解释:输入的二进制串 00000000000000000原创 2020-08-12 10:17:18 · 161 阅读 · 0 评论 -
剑指 Offer 14- I. 剪绳子
问题: 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。 示例: 输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1 输入: 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36 解答原创 2020-08-12 09:13:15 · 123 阅读 · 0 评论 -
剑指 Offer 13. 机器人的运动范围
问题: 地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子? 示例 1: 输入:m = 2, n = 3, k = 1 输出:3 示例 2: 输入:m =原创 2020-08-11 10:02:30 · 229 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
问题: 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。 [[“a”,“b”,“c”,“e”], [“s”,“f”,“c”,“s”], [“a”,“d”,“e”,“e”]] 但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行原创 2020-08-10 16:36:30 · 106 阅读 · 0 评论 -
剑指Offer11: 旋转数组的最小数字
问题: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例: 输入:[3,4,5,1,2] 输出:1 输入:[2,2,2,0,1] 输出:0 解答: object Solution { def minArray(numbers: Array[Int]): Int = { var start = 0原创 2020-08-03 09:54:11 · 113 阅读 · 0 评论 -
剑指Offer10-II:青蛙跳台阶问题
问题: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例: 输入:n = 2 输出:2 输入:n = 7 输出:21 解答: object Solution { def numWays(n: Int): Int = { var array = new Array[Int](n+1) if(n == 0 || n原创 2020-08-03 09:17:26 · 193 阅读 · 0 评论 -
剑指Offer10-1. 斐波那契数列
问题: 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 解答: object Solution { def fib(n: Int): Int =原创 2020-07-28 14:42:20 · 150 阅读 · 0 评论 -
剑指Offer07:重建二叉树
问题:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例: 给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 解答: /** * Definition for a binary tree node. * class TreeNode(var _value: Int) { * var value: Int = _value * var原创 2020-07-27 14:46:36 · 76 阅读 · 0 评论 -
剑指Offer06:从尾到头打印链表
问题: 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例: 输入:head = [1,3,2] 输出:[2,3,1] 解答: /** * Definition for singly-linked list. * class ListNode(var _x: Int = 0) { * var next: ListNode = null * var x: Int = _x * } */ import scala.collection.mutable object S原创 2020-07-24 16:06:15 · 117 阅读 · 0 评论 -
剑指Offer05:替换空格
问题摘要: 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例: 输入:s = “We are happy.” 输出:“We%20are%20happy.” 解答; object Solution { def replaceSpace(s: String): String = { return s.replaceAll(" ","%20") } } ...原创 2020-07-24 15:24:53 · 101 阅读 · 0 评论 -
剑指Offer04:二维数组中的查找
问题摘要: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 示例1: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30] ] 给定 target = 5,返回 true。 给定原创 2020-07-24 14:49:09 · 95 阅读 · 0 评论 -
剑指Offer03:数组中重复数字问题
问题摘要: 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例1: 输入: [2, 3, 1, 0, 2, 5, 3] 输出:2 或 3 示例2: 输入: [0,1,2,3,4,11,6,7,8,9,10,11,12,13,14,15] 输出:11 解答: object Solution { def findRepeatNumber(n原创 2020-07-24 11:33:12 · 90 阅读 · 0 评论