![](https://img-blog.csdnimg.cn/20200620220222861.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Leetcode
刷题记录
Lucius_Keep_Going!
新人还请各位多多批评指正!
展开
-
Java-笔试输入输出记录
春招开始了,希望能有个好的结果,很久没有提笔写博客了,那就从输入输出开始吧!/**1.数组求和 一直输入* 1 510 20** 6 30* */import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int原创 2021-03-08 20:51:17 · 535 阅读 · 0 评论 -
剑指 Offer —礼物的最大价值
复仇Bytedance之路 题目描述:在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?示例 1:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 12解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物提示:0 < grid.length &l.原创 2020-07-08 20:49:16 · 123 阅读 · 0 评论 -
剑指Offer —顺时针打印矩阵
复仇Bytedance之路 题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例 2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]限制:0 <= matrix.length <= 1000 <= ma.原创 2020-07-07 21:50:57 · 88 阅读 · 0 评论 -
剑指 Offer — 从上到下打印二叉树
复仇Bytedance之路 题目描述:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000题解典型的程序遍历即广度优先搜索(BFS)。BFS 是借助队列的先入先出特性实现的:算法流程:特例处理: 当树的根节点为空,则直接返回空列表 [] ;初始.原创 2020-07-04 22:30:10 · 424 阅读 · 0 评论 -
剑指 Offer — 平衡二叉树
复仇Bytedance之路 题目描述:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3.原创 2020-07-04 16:48:55 · 3059 阅读 · 0 评论 -
剑指 Offer —对称的二叉树
复仇Bytedance之路 题目描述:请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出.原创 2020-07-04 15:01:11 · 101 阅读 · 0 评论 -
剑指 Offer —数组中出现次数超过一半的数字
复仇Bytedance之路 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000题解摩尔投票法:票数和: 由于众数出现的次数超过数组长度的一半;若记 众数 的票数为 +1,非众数 的票数为 -1 ,则一定有所有数字的 票数和 > 0 。票数正负抵消: 设数组.原创 2020-06-28 20:27:10 · 136 阅读 · 0 评论 -
剑指 Offer —合并两个排序的链表
复仇Bytedance之路 题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4限制:0 <= 链表长度 <= 1000题解创建一个虚拟头节点,比较两个链表的头节点。/** * Definition for singly-linked list. * public class ListNode .原创 2020-06-27 22:34:22 · 86 阅读 · 0 评论 -
剑指 Offer —最长不含重复字符的子字符串
复仇Bytedance之路 题目描述:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案.原创 2020-06-27 15:51:50 · 74 阅读 · 0 评论 -
剑指 Offer —数值的整数次方
复仇Bytedance之路 题目描述:实现函数double Power(double base, int exponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 <.原创 2020-06-24 15:20:17 · 90 阅读 · 0 评论 -
剑指 Offer — 剪绳子
复仇Bytedance之路 题目描述:给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m] 。请问 k[0]k[1]…*k[m] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。示例 1:输入: 2输出: 1解释: 2 .原创 2020-06-24 15:00:42 · 74 阅读 · 0 评论 -
剑指 Offer — 矩阵中的路径
复仇Bytedance之路 题目描述:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[["a","b","c","e"],["s","f","c","s"],["a","d","e","e"]]但矩阵中不包含字符串“abfb”的路径,因.原创 2020-06-23 21:43:17 · 93 阅读 · 1 评论 -
剑指 Offer —斐波那契数列/青蛙跳台阶问题
复仇Bytedance之路 题目描述:写一个函数,输入 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-06-22 21:03:49 · 143 阅读 · 0 评论 -
剑指 Offer —用两个栈实现队列
复仇Bytedance之路 题目描述:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:["CQueue","appendTail","deleteHead","deleteHead"][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:["CQueue","del.原创 2020-06-22 20:26:36 · 121 阅读 · 0 评论 -
剑指 Offer — 从尾到头打印链表/链表反转
复仇Bytedance之路 题目描述:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1] 限制:0 <= 链表长度 <= 10000题解方法一:反转链表之后输出遍历结束之后:cur==null; pre是尾节点/** * Definition for singly-linked list. * public class ListNode { * int val; *.原创 2020-06-21 20:49:47 · 77 阅读 · 0 评论 -
剑指 Offer — 替换空格
复仇Bytedance之路 题目描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000题解这种就没意思了s.replace(" ","%20");那就直接stringbuilder吧class Solution { public String replaceSpace(String s) { .原创 2020-06-21 18:59:55 · 74 阅读 · 0 评论 -
剑指 Offer —二维数组中的查找
复仇Bytedance之路 题目描述:在一个 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].原创 2020-06-21 18:43:21 · 91 阅读 · 0 评论 -
剑指 Offer—找出数组中重复的数字
题目描述:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3 限制:2 <= n <= 100000解题思路:方法一:遍历数组元素放到set/map,中判断是否已经有了,有了就返回。时间复杂度O(n)class Solution { public int原创 2020-06-20 21:50:07 · 176 阅读 · 0 评论