- 博客(11)
- 收藏
- 关注
原创 Leetcode—Day11—剑指offer 18+22 (双指针)
剑指 Offer 18. 删除链表的节点简单给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.剑指 Offer 18. 删除链表的节点/** * Definition for singly-linked list. * public c...
2022-01-19 19:55:53 84
原创 Leetcode—Day10—剑指offer 42+47 (动态规划)
剑指 Offer 46. 把数字翻译成字符串难度中等给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。思路一: 按位存储,每次观察本位和上一位是不是字母 思路二:每次观察num%100,也就是后两位,从后向前判断,是不是字母class Solution { public int translateNum(
2022-01-18 12:27:57 154
原创 Leetcode—Day9—剑指offer 42+47 (动态规划)
剑指 Offer 42. 连续子数组的最大和输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。class Solution { public int maxSubArray(int[] nums) { int ans = nums[0]; int[] sum = new int[nums.length]; sum[0] = nums[0]; for(int i
2022-01-17 13:14:51 112
原创 Leetcode—Day8—剑指offer 10+63 (动态规划)
剑指 Offer 10- I. 斐波那契数列写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0,F(1)= 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。class Solution {...
2022-01-16 19:31:22 111
原创 Leetcode—Day7—剑指offer 26+27+28 (搜索与回溯算法)
剑指 Offer 26. 树的子结构中等输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A:3/ \4 5/ \1 2给定的树 B:4/1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值class Solution { public boolean isSubStructure(Tr...
2022-01-15 13:38:27 95
原创 Leetcode—Day6—剑指offer 32 (搜索与回溯算法)
剑指 Offer 32 - I. 从上到下打印二叉树从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution {
2022-01-14 21:21:42 122
原创 Leetcode—Day5—剑指offer 04+11+50 (查找算法)
剑指 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], ...
2022-01-13 08:57:06 74
原创 Leetcode—Day4—剑指offer 03+53 (查找算法)
剑指 Offer 03. 数组中重复的数字简单找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。class Solution { public int findRepeatNumber(int[] nums) { int[] n = new int[nums.length]; for(int i :.
2022-01-12 15:19:20 3155
原创 Leetcode—Day3—剑指offer 05+58(字符串)
剑指 Offer 05. 替换空格 (简单)请实现一个函数,把字符串 s 中的每个空格替换成"%20"。我喜欢用String的时候直接转成char数组,StringBuilder用来接收数据流,可以直接通过new String(StringBuilder)转换成String。class Solution { public String replaceSpace(String s) { char[] c = s.toCharArray(); StringB.
2022-01-11 10:26:22 99
原创 Leetcode—Day2—剑指offer 06+24+35(链表)
剑指 Offer 06. 从尾到头打印链表输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。看见反转顺序,使用栈先进后出的特点class Solution { public int[] reversePrint(ListNode head) { Stack<Integer> s = new Stack<Integer>(); int cnt = 0; while(head!=null){
2022-01-10 21:53:19 272
原创 Leetcode—Day1—剑指offer30+09(栈与队列)
剑指 Offer 30. 包含min函数的栈定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
2022-01-09 19:16:39 360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人