随笔分类 - LeetCode
刷题
摘要:题目来源 补充题1. 排序奇升偶降链表 题目详情 本文章是对企业题库CodeTop[1]的补充,汇总那些在Leetcode上找不到的面试高频题。 来看一下几篇面经的原文叙述 链表,奇数位置按序增长,偶数位置按序递减,如何能实现链表从小到大?(2020.10 字节跳动-后端)[2] 奇偶生序倒序链表的
阅读全文
摘要:题目来源 518. 零钱兑换 II 题目详情 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带符号整数
阅读全文
摘要:题目来源 59. 螺旋矩阵 II 题目详情 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入: n = 3 输出: [[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入: n = 1
阅读全文
摘要:题目来源 79. 单词搜索 题目详情 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一
阅读全文
摘要:题目来源 662. 二叉树最大宽度 题目详情 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与**满二叉树(full binary tree)**结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也
阅读全文
摘要:题目来源 498. 对角线遍历 题目详情 给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。 示例 1: 输入: mat = [[1,2,3],[4,5,6],[7,8,9]] 输出: [1,2,4,7,5,3,6,8,9] 示例 2: 输入:
阅读全文
摘要:题目来源 227. 基本计算器 II 题目详情 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。 整数除法仅保留整数部分。 示例 1: 输入: s = "3+2*2" 输出: 7 示例 2: 输入: s = " 3/2 " 输出: 1 示例 3: 输入: s = " 3+5 /
阅读全文
摘要:题目来源 24. 两两交换链表中的节点 题目详情 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入: head = [1,2,3,4] 输出: [2,1,4,3] 示例 2: 输入: head =
阅读全文
摘要:题目来源 209. 长度最小的子数组 题目详情 给定一个含有 n个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, ..., numsr-1, numsr] ,并返回其长度**。** 如果不存在符合条件的子
阅读全文
摘要:题目来源 14. 最长公共前缀 题目详情 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: strs = ["flower","flow","flight"] 输出: "fl" 示例 2: 输入: strs = ["dog","raceca
阅读全文
摘要:题目来源 138. 复制带随机指针的链表 题目详情 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的 ne
阅读全文
摘要:题目来源 695. 岛屿的最大面积 题目详情 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。 岛屿的面积是岛上值
阅读全文
摘要:题目来源 179. 最大数 题目详情 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。 注意: 输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例 1: 输入:nums = [10,2] 输出: "210" 示例 2: 输入:nums = [3,
阅读全文
摘要:题目来源 162. 寻找峰值 题目详情 峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] = nums[n] = -∞ 。 你必须实现时间复杂度为 O
阅读全文
摘要:题目来源 165. 比较版本号 题目详情 给你两个版本号 version1 和 version2 ,请你比较它们。 版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的
阅读全文
摘要:题目来源 43. 字符串相乘 题目详情 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 = "2", num2 = "3" 输出: "6" 示例 2: 输入: num1 = "123",
阅读全文
摘要:题目来源 470. 用 Rand7() 实现 Rand10() 题目详情 给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。 你只能调用 rand7() 且不能调用其他方法。请不要使用系统的 Math.random(
阅读全文
摘要:题目来源 93. 复原 IP 地址 题目详情 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192
阅读全文
摘要:题目来源 129. 求根节点到叶节点数字之和 题目详情 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字
阅读全文
摘要:题目来源 8. 字符串转换整数 (atoi) 题目详情 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字
阅读全文