
剑指Offer
Offer
大数据精读周刊
这个作者很懒,什么都没留下…
展开
-
JZ77按之字形顺序打印二叉树
import java.util.*;/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public ArrayList<ArrayList<Integ.原创 2024-03-17 21:44:56 · 240 阅读 · 0 评论 -
剑指 Offer 40. 最小的k个数
剑指 Offer 40. 最小的k个数输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]输入:arr = [0,1,2,1], k = 1输出:[0]class Solution { public int[] getLeastNumbers(int[] arr, int k) { /*原创 2022-06-03 13:29:15 · 532 阅读 · 2 评论 -
JZ7 斐波那契数列
public class Solution { public int Fibonacci(int n) { if(n<0) return -1; if(n==0) return 0; if(n==1) return 1; int a =0; int b=1; int res=1; for(int i=1;i<n;i++){ res...原创 2022-05-24 09:11:47 · 534 阅读 · 0 评论 -
JZ6 旋转数组的最小数字
题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。示例1输入复制[3,4,5,1,2]返回值复制1import java.util.ArrayList;public class Solution { public int minNumberInRotateArray(int [] array) { if(array.l原创 2022-05-24 09:11:11 · 532 阅读 · 0 评论 -
JZ52 两个链表的第一个公共结点
/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode FindFirstCommonNode(ListNode pHead1, ListNode pHead2) { if (pHead1 ==原创 2022-03-30 22:02:23 · 744 阅读 · 1 评论 -
剑指 Offer 25. 合并两个排序的链表
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { //设置两个指针,分别指向l1和.原创 2022-07-24 14:35:27 · 487 阅读 · 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 =原创 2021-11-24 10:32:40 · 662 阅读 · 15 评论 -
剑指 Offer 12. 矩阵中的路径
请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第一行第二个原创 2021-11-18 09:48:06 · 679 阅读 · 15 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入:n = 2输出:2示例 2:输入:n = 7输出:21示例 3:输入:n = 0输出:1提示:0 <= n <= 100我的答案class Solution { int a=1,b=1; int res;原创 2021-11-11 15:17:28 · 904 阅读 · 10 评论 -
剑指offer记录贴
状态题目通过率难度说明????剑指 Offer 03. 数组中重复的数字67.8%简单剑指 Offer 04. 二维数组中的查找40.3%中等剑指 Offer 05. 替换空格76.0%简单剑指 Offer 06. 从尾到头打印链表75.1%简单剑指 Offer 07. 重建二叉树69.8%中等剑指 Offer 09. 用两个栈实现队列71.4%简单剑指 Offer 10- I. 斐波那契数列36.0.原创 2021-11-09 17:03:43 · 739 阅读 · 13 评论 -
剑指 Offer 09. 用两个栈实现队列
题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","deleteHead","app原创 2021-10-26 14:51:41 · 651 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7 限制:0 <= 节点个数 <= 5000答案/** * Definition for a binary tree原创 2021-10-24 09:00:00 · 616 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000我的答案/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } *原创 2021-10-22 08:55:19 · 640 阅读 · 3 评论 -
剑指 Offer 05. 替换空格
题目请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."我的答案class Solution { public String replaceSpace(String s) { StringBuffer str =new StringBuffer(); //System.out.println(s.charAt(0)); //S原创 2021-10-19 19:19:22 · 629 阅读 · 4 评论 -
剑指 Offer 04. 二维数组中的查找
题目剑指 Offer 04. 二维数组中的查找在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 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原创 2021-10-18 08:48:04 · 725 阅读 · 22 评论 -
剑指 Offer 03. 数组中重复的数字
题目剑指 Offer 03. 数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000我的答案class Solution { public int findRepeatNumber(int[] nums) {原创 2021-10-16 10:30:47 · 766 阅读 · 16 评论