- 博客(8)
- 收藏
- 关注
原创 剑指 Offer 11. 旋转数组的最小数字
剑指 Offer 11. 旋转数组的最小数字把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。示例 1:输入:[3,4,5,1,2]输出:1示例 2:输入:[2,2,2,0,1]输出:0思路:由于原数组递增,遍历旋转数组时返回比前一个元素小的数值即可。若不存在,说明数组每旋转,则返回第一个元素。代码:class Solu
2020-07-21 22:49:56 88
原创 剑指Offer09 用两个栈实现队列
剑指 Offer 09. 用两个栈实现队列用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“delete
2020-07-19 22:47:01 114
原创 剑指 Offer 10- II. 青蛙跳台阶问题
剑指 Offer 10- II. 青蛙跳台阶问题一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21代码:class Solution { public int numWays(int n) { int i; int []dp=new
2020-07-19 00:05:08 91
原创 剑指 Offer 10- I. 斐波那契数列
剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:1示例 2:输入:
2020-07-17 23:42:17 112 1
原创 剑指Offer 06 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000解题思路:遍历链表后,计算出元素个数。据此,初始化数组。再次遍历数组,将元素倒序存入到数组中。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; *
2020-07-16 17:07:15 774 2
原创 剑指 Offer 05 替换空格
剑指 Offer 05. 替换空格请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”解题思路: 把字符串s转化成字符型数组后,遍历数组。class Solution { public String replaceSpace(String s) { int i,len; char []p; String news
2020-07-15 22:52:12 129
原创 剑指offer04
剑指 Offer 04. 二维数组中的查找难度简单104收藏分享切换为英文关注反馈在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24
2020-07-15 22:43:34 142
原创 剑指offer03
剑指 Offer 03. 数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 来源:leetcode示例 1: 输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3思路:将数组进行排序,排序后,检查下一个是否和当前元素相等,相等则结束。代码:class
2020-07-13 14:45:51 148
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人