├── note ├── jvm与gc调优 │ ├── 06垃圾回收篇.md │ └── 01字节码篇.md ├── 数据结构与算法 │ ├── 6链表相关面试题.md │ └── 5堆和堆排序.md ├── 项目实战 │ └── README.MD ├── 九章算法 │ └── Untitled.md ├── 离线数仓 │ └── 0数仓基础.md ├── juc │ └── 04Java中的锁事.md ├── 消息中间件 │ └── redis │ │ └── 06Redis分布式锁.md └── clickhouse │ └── 1docker快速安装clickhouse.md ├── algorithm ├── src │ └── main │ │ ├── resources │ │ └── jianli.pdf │ │ └── java │ │ ├── com │ │ └── data │ │ │ ├── offer02 │ │ │ ├── code │ │ │ │ ├── Solution92.java │ │ │ │ ├── Solution73.java │ │ │ │ ├── Solution91.java │ │ │ │ ├── Solution71.java │ │ │ │ ├── Solution61.java │ │ │ │ ├── Solution34.java │ │ │ │ ├── Solution88.java │ │ │ │ ├── Solution06.java │ │ │ │ ├── Solution09.java │ │ │ │ ├── Solution12.java │ │ │ │ ├── Solution42.java │ │ │ │ ├── Solution47.java │ │ │ │ ├── Solution10.java │ │ │ │ ├── Solution72.java │ │ │ │ ├── Solution08.java │ │ │ │ ├── Solution49.java │ │ │ │ ├── Solution32.java │ │ │ │ ├── Solution13.java │ │ │ │ ├── Solution69.java │ │ │ │ ├── Solution51.java │ │ │ │ ├── Solution68.java │ │ │ │ ├── Solution59.java │ │ │ │ ├── Solution38.java │ │ │ │ ├── Solution33.java │ │ │ │ ├── Solution90.java │ │ │ │ ├── Solution70.java │ │ │ │ ├── Solution80.java │ │ │ │ ├── Solution41.java │ │ │ │ ├── Solution14.java │ │ │ │ ├── Solution48.java │ │ │ │ ├── Solution60.java │ │ │ │ ├── Solution79.java │ │ │ │ ├── Solution50.java │ │ │ │ ├── Solution15.java │ │ │ │ ├── Solution46.java │ │ │ │ ├── Solution45.java │ │ │ │ ├── Solution36.java │ │ │ │ ├── Solution39.java │ │ │ │ ├── Solution89.java │ │ │ │ ├── Solution81.java │ │ │ │ ├── Solution11.java │ │ │ │ ├── Solution78.java │ │ │ │ └── Solution76.java │ │ │ └── demo │ │ │ │ ├── SearchBST.java │ │ │ │ ├── Solution1248.java │ │ │ │ ├── PreSum.java │ │ │ │ ├── Solution560.java │ │ │ │ └── DFS.java │ │ │ ├── entity │ │ │ ├── DoubleNode.java │ │ │ ├── ListNode.java │ │ │ └── TreeNode.java │ │ │ └── geektime │ │ │ ├── week_01 │ │ │ ├── Solution206.java │ │ │ ├── Solution26.java │ │ │ ├── Solution283.java │ │ │ ├── Solution88.java │ │ │ ├── Solution42.java │ │ │ ├── Solution239.java │ │ │ └── Solution84.java │ │ │ └── week_00 │ │ │ ├── Solution24.java │ │ │ ├── Solution141.java │ │ │ ├── Solution21.java │ │ │ ├── Solution66.java │ │ │ ├── Solution1248.java │ │ │ ├── Solution19.java │ │ │ ├── Solution142.java │ │ │ └── Solution20.java │ │ └── leetcode │ │ └── editor │ │ └── cn │ │ ├── doc │ │ └── content │ │ │ ├── Code剑指 Offer II 009_ZVAVXX.md │ │ │ ├── Code剑指 Offer II 003_W3tCBm.md │ │ │ ├── Code剑指 Offer II 005_AseY1I.md │ │ │ ├── Code剑指 Offer II 006_KLl5u1.md │ │ │ ├── Code剑指 Offer II 007_OneFGaJU.md │ │ │ ├── Code剑指 Offer II 010_QTMn0o.md │ │ │ ├── Code剑指 Offer II 011_A1NYOS.md │ │ │ ├── Code剑指 Offer II 008_TwoVG8Kg.md │ │ │ ├── Code404_SumOfLeftLeaves.md │ │ │ ├── Code145_BinaryTreePostorderTraversal.md │ │ │ ├── Code剑指 Offer 06_CongWeiDaoTouDaYinLianBiaoLcof.md │ │ │ ├── Code剑指 Offer 05_TiHuanKongGeLcof.md │ │ │ ├── Code剑指 Offer 17_DaYinCong1daoZuiDaDeNweiShuLcof.md │ │ │ ├── Code104_MaximumDepthOfBinaryTree.md │ │ │ ├── Code107_BinaryTreeLevelOrderTraversalIi.md │ │ │ ├── Code106_ConstructBinaryTreeFromInorderAndPostorderTraversal.md │ │ │ ├── Code剑指 Offer 51_ShuZuZhongDeNiXuDuiLcof.md │ │ │ ├── Code102_BinaryTreeLevelOrderTraversal.md │ │ │ ├── Code剑指 Offer 50_DiYiGeZhiChuXianYiCiDeZiFuLcof.md │ │ │ ├── Code剑指 Offer 22_LianBiaoZhongDaoShuDiKgeJieDianLcof.md │ │ │ ├── Code剑指 Offer 03_ShuZuZhongZhongFuDeShuZiLcof.md │ │ │ ├── Code543_DiameterOfBinaryTree.md │ │ │ ├── Code剑指 Offer 32 - I_CongShangDaoXiaDaYinErChaShuLcof.md │ │ │ ├── Code剑指 Offer 25_HeBingLiangGePaiXuDeLianBiaoLcof.md │ │ │ ├── Code152_MaximumProductSubarray.md │ │ │ ├── Code剑指 Offer 38_ZiFuChuanDePaiLieLcof.md │ │ │ ├── Code101_SymmetricTree.md │ │ │ ├── Code504_Base7.md │ │ │ ├── Code剑指 Offer 21_DiaoZhengShuZuShunXuShiQiShuWeiYuOuShuQianMianLcof.md │ │ │ ├── Code剑指 Offer 53 - II_QueShiDeShuZiLcof.md │ │ │ ├── Code剑指 Offer 32 - III_CongShangDaoXiaDaYinErChaShuIiiLcof.md │ │ │ ├── Code22_GenerateParentheses.md │ │ │ ├── Code剑指 Offer 56 - I_ShuZuZhongShuZiChuXianDeCiShuLcof.md │ │ │ ├── Code226_InvertBinaryTree.md │ │ │ ├── Code剑指 Offer 55 - I_ErChaShuDeShenDuLcof.md │ │ │ ├── Code剑指 Offer 49_ChouShuLcof.md │ │ │ ├── Code剑指 Offer 54_ErChaSouSuoShuDeDiKdaJieDianLcof.md │ │ │ ├── Code剑指 Offer 46_BaShuZiFanYiChengZiFuChuanLcof.md │ │ │ ├── Code剑指 Offer 47_LiWuDeZuiDaJieZhiLcof.md │ │ │ ├── Code剑指 Offer 57 - II_HeWeiSdeLianXuZhengShuXuLieLcof.md │ │ │ ├── Code剑指 Offer 57_HeWeiSdeLiangGeShuZiLcof.md │ │ │ ├── Code剑指 Offer 39_ShuZuZhongChuXianCiShuChaoGuoYiBanDeShuZiLcof.md │ │ │ ├── Code剑指 Offer 40_ZuiXiaoDeKgeShuLcof.md │ │ │ ├── Code328_OddEvenLinkedList.md │ │ │ ├── Code516_LongestPalindromicSubsequence.md │ │ │ ├── Code77_Combinations.md │ │ │ ├── Code416_PartitionEqualSubsetSum.md │ │ │ ├── Code剑指 Offer 44_ShuZiXuLieZhongMouYiWeiDeShuZiLcof.md │ │ │ ├── Code96_UniqueBinarySearchTrees.md │ │ │ ├── Code剑指 Offer 32 - II_CongShangDaoXiaDaYinErChaShuIiLcof.md │ │ │ ├── Code剑指 Offer 33_ErChaSouSuoShuDeHouXuBianLiXuLieLcof.md │ │ │ ├── Code剑指 Offer 43_OneNzhengShuZhong1chuXianDeCiShuLcof.md │ │ │ ├── Code70_ClimbingStairs.md │ │ │ ├── Code剑指 Offer 30_BaoHanMinhanShuDeZhanLcof.md │ │ │ ├── Code剑指 Offer 42_LianXuZiShuZuDeZuiDaHeLcof.md │ │ │ ├── Code560_SubarraySumEqualsK.md │ │ │ ├── Code剑指 Offer 45_BaShuZuPaiChengZuiXiaoDeShuLcof.md │ │ │ ├── Code78_Subsets.md │ │ │ ├── Code剑指 Offer 10- I_FeiBoNaQiShuLieLcof.md │ │ │ ├── Code剑指 Offer 13_JiQiRenDeYunDongFanWeiLcof.md │ │ │ ├── Code剑指 Offer 11_XuanZhuanShuZuDeZuiXiaoShuZiLcof.md │ │ │ ├── Code69_Sqrtx.md │ │ │ ├── Code876_MiddleOfTheLinkedList.md │ │ │ ├── Code111_MinimumDepthOfBinaryTree.md │ │ │ ├── Code剑指 Offer 29_ShunShiZhenDaYinJuZhenLcof.md │ │ │ ├── Code剑指 Offer 18_ShanChuLianBiaoDeJieDianLcof.md │ │ │ ├── Code55_JumpGame.md │ │ │ ├── Code剑指 Offer 10- II_QingWaTiaoTaiJieWenTiLcof.md │ │ │ ├── Code46_Permutations.md │ │ │ ├── Code剑指 Offer 26_ShuDeZiJieGouLcof.md │ │ │ ├── Code5_LongestPalindromicSubstring.md │ │ │ ├── Code84_LargestRectangleInHistogram.md │ │ │ ├── Code剑指 Offer 14- I_JianShengZiLcof.md │ │ │ ├── Code61_RotateList.md │ │ │ ├── Code15_ThreeSum.md │ │ │ ├── Code617_MergeTwoBinaryTrees.md │ │ │ ├── Code83_RemoveDuplicatesFromSortedList.md │ │ │ ├── Code198_HouseRobber.md │ │ │ ├── Code199_BinaryTreeRightSideView.md │ │ │ ├── Code66_PlusOne.md │ │ │ ├── Code86_PartitionList.md │ │ │ ├── Code剑指 Offer 04_ErWeiShuZuZhongDeChaZhaoLcof.md │ │ │ ├── Code21_MergeTwoSortedLists.md │ │ │ ├── Code56_MergeIntervals.md │ │ │ ├── Code剑指 Offer 37_XuLieHuaErChaShuLcof.md │ │ │ ├── Code64_MinimumPathSum.md │ │ │ ├── Code剑指 Offer 27_ErChaShuDeJingXiangLcof.md │ │ │ ├── Code24_SwapNodesInPairs.md │ │ │ ├── Code82_RemoveDuplicatesFromSortedListIi.md │ │ │ ├── Code剑指 Offer 55 - II_PingHengErChaShuLcof.md │ │ │ ├── Code203_RemoveLinkedListElements.md │ │ │ ├── Code49_GroupAnagrams.md │ │ │ ├── Code剑指 Offer 07_ZhongJianErChaShuLcof.md │ │ │ ├── Code剑指 Offer 09_YongLiangGeZhanShiXianDuiLieLcof.md │ │ │ ├── Code剑指 Offer 59 - I_HuaDongChuangKouDeZuiDaZhiLcof.md │ │ │ ├── Code剑指 Offer II 079_TVdhkn.md │ │ │ ├── Code92_ReverseLinkedListIi.md │ │ │ ├── Code704_BinarySearch.md │ │ │ ├── Code剑指 Offer 14- II_JianShengZiIiLcof.md │ │ │ ├── Code50_PowxN.md │ │ │ ├── Code121_BestTimeToBuyAndSellStock.md │ │ │ ├── Code234_PalindromeLinkedList.md │ │ │ ├── Code剑指 Offer 53 - I_ZaiPaiXuShuZuZhongChaZhaoShuZiLcof.md │ │ │ ├── Code53_MaximumSubarray.md │ │ │ ├── Code19_RemoveNthNodeFromEndOfList.md │ │ │ ├── Code739_DailyTemperatures.md │ │ │ ├── Code17_LetterCombinationsOfAPhoneNumber.md │ │ │ ├── Code剑指 Offer II 019_RQku0D.md │ │ │ ├── Code剑指 Offer II 018_XltzEq.md │ │ │ ├── Code148_SortList.md │ │ │ ├── Code162_FindPeakElement.md │ │ │ ├── Code206_ReverseLinkedList.md │ │ │ ├── Code213_HouseRobberIi.md │ │ │ ├── Code437_PathSumIii.md │ │ │ ├── Code1248_CountNumberOfNiceSubarrays.md │ │ │ ├── Code31_NextPermutation.md │ │ │ ├── Code110_BalancedBinaryTree.md │ │ │ ├── Code188_BestTimeToBuyAndSellStockIv.md │ │ │ ├── Code剑指 Offer 28_DuiChengDeErChaShuLcof.md │ │ │ ├── Code剑指 Offer II 014_MPnaiL.md │ │ │ └── Code2_AddTwoNumbers.md │ │ ├── ListNode.java │ │ ├── TreeNode.java │ │ ├── Code剑指 Offer II 005_AseY1I.java │ │ ├── Code50_PowxN.java │ │ ├── Code剑指 Offer 38_ZiFuChuanDePaiLieLcof.java │ │ ├── Code剑指 Offer 05_TiHuanKongGeLcof.java │ │ ├── Code剑指 Offer 17_DaYinCong1daoZuiDaDeNweiShuLcof.java │ │ ├── Code剑指 Offer 33_ErChaSouSuoShuDeHouXuBianLiXuLieLcof.java │ │ ├── Code剑指 Offer II 009_ZVAVXX.java │ │ ├── Code剑指 Offer 39_ShuZuZhongChuXianCiShuChaoGuoYiBanDeShuZiLcof.java │ │ ├── Code剑指 Offer II 010_QTMn0o.java │ │ ├── Code31_NextPermutation.java │ │ ├── Code剑指 Offer II 006_KLl5u1.java │ │ ├── Code剑指 Offer 03_ShuZuZhongZhongFuDeShuZiLcof.java │ │ ├── Code56_MergeIntervals.java │ │ ├── Code剑指 Offer 16_ShuZhiDeZhengShuCiFangLcof.java │ │ ├── Code剑指 Offer 53 - II_QueShiDeShuZiLcof.java │ │ ├── Code剑指 Offer II 008_TwoVG8Kg.java │ │ ├── Code69_Sqrtx.java │ │ ├── Code剑指 Offer 21_DiaoZhengShuZuShunXuShiQiShuWeiYuOuShuQianMianLcof.java │ │ ├── Code剑指 Offer 50_DiYiGeZhiChuXianYiCiDeZiFuLcof.java │ │ ├── Code70_ClimbingStairs.java │ │ ├── Code55_JumpGame.java │ │ ├── Code剑指 Offer 10- II_QingWaTiaoTaiJieWenTiLcof.java │ │ └── Code剑指 Offer 42_LianXuZiShuZuDeZuiDaHeLcof.java └── pom.xml ├── redis ├── src │ └── main │ │ └── java │ │ └── Hadoop.java └── pom.xml ├── .gitignore ├── akka ├── src │ └── main │ │ └── scala │ │ └── Test.scala └── pom.xml ├── spark ├── src │ └── main │ │ ├── scala │ │ └── com │ │ │ └── data │ │ │ └── spark │ │ │ ├── sql │ │ │ ├── TransDF.scala │ │ │ └── CreateDF.scala │ │ │ └── core │ │ │ └── Demo01_WordCount.scala │ │ └── resources │ │ ├── log4j.properties │ │ └── data │ │ └── wikiOfSpark.txt └── pom.xml ├── pom.xml └── juc └── src └── main └── java └── com └── big └── data └── thread ├── NewThread.java ├── BadLockOnInteger.java └── VolatileTest.java /note/jvm与gc调优/06垃圾回收篇.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /note/数据结构与算法/6链表相关面试题.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /note/项目实战/README.MD: -------------------------------------------------------------------------------- 1 | hahahah -------------------------------------------------------------------------------- /note/九章算法/Untitled.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /algorithm/src/main/resources/jianli.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fengchi66/bigdata/HEAD/algorithm/src/main/resources/jianli.pdf -------------------------------------------------------------------------------- /note/数据结构与算法/5堆和堆排序.md: -------------------------------------------------------------------------------- 1 | [堆排序](https://leetcode-cn.com/problems/sort-an-array/solution/dong-hua-mo-ni-yi-ge-po-dui-pai-wo-gao-l-i6mt/) 2 | 3 | -------------------------------------------------------------------------------- /redis/src/main/java/Hadoop.java: -------------------------------------------------------------------------------- 1 | public class Hadoop { 2 | 3 | public static void main(String[] args) { 4 | System.out.println("aaaa"); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Scala template 3 | *.class 4 | *.log 5 | 6 | .idea 7 | *.iml 8 | 9 | target/ 10 | 11 | ## spark -------------------------------------------------------------------------------- /note/jvm与gc调优/01字节码篇.md: -------------------------------------------------------------------------------- 1 | ## 字节码文件概述 2 | 3 | ### 字节码指令 4 | 5 | **什么是字节码指令(byte code)?** 6 | 7 | Java虚拟机的指令由一个字节长度的、代表着某种特定操作含义的操作码(opcode)以及跟随其后的零至多个代表此操作所需参数的操作数(operand)所构成。虚拟机中许多指令并不包含操作数,只有一个操作码。 -------------------------------------------------------------------------------- /algorithm/src/main/java/com/data/offer02/code/Solution92.java: -------------------------------------------------------------------------------- 1 | package com.data.offer02.code; 2 | 3 | // 翻转字符 4 | public class Solution92 { 5 | 6 | public int minFlipsMonoIncr(String s) { 7 | return 0; 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /akka/src/main/scala/Test.scala: -------------------------------------------------------------------------------- 1 | import akka.actor.ActorSystem 2 | 3 | object Test { 4 | 5 | def main(args: Array[String]): Unit = { 6 | val actorSystem = ActorSystem("helloWorld") 7 | 8 | println(actorSystem.name) 9 | } 10 | 11 | } -------------------------------------------------------------------------------- /algorithm/src/main/java/com/data/offer02/code/Solution73.java: -------------------------------------------------------------------------------- 1 | package com.data.offer02.code; 2 | 3 | // 狒狒吃香蕉 4 | public class Solution73 { 5 | public int minEatingSpeed(int[] piles, int h) { 6 | 7 | return 0; 8 | 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /note/离线数仓/0数仓基础.md: -------------------------------------------------------------------------------- 1 | ## 搭建数据指标体系 2 | 3 | 近7天在某渠道的贷款 4 | 5 | **为什么建立指标体系** 6 | 7 | - 从数据上层的应用系统,业务使用方和技术使用方的分析瓶颈, 8 | 9 | ### 划分主题域 10 | 11 | - 确定主题的边界 12 | - 业务或业务过程 13 | - 需求方划分,财务、法务 职能域 14 | - 按照功能和应用划分 15 | 16 | 17 | 18 | 数据开发、数据质量、数据安全、数据管理 -------------------------------------------------------------------------------- /algorithm/src/main/java/com/data/offer02/code/Solution91.java: -------------------------------------------------------------------------------- 1 | package com.data.offer02.code; 2 | 3 | // 粉刷房子 4 | public class Solution91 { 5 | 6 | public int minCost(int[][] costs) { 7 | int n = costs.length; 8 | 9 | return 0; 10 | 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /algorithm/src/main/java/leetcode/editor/cn/doc/content/Code剑指 Offer II 009_ZVAVXX.md: -------------------------------------------------------------------------------- 1 |
English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |English description is not available for the problem. Please switch to Chinese.
2 |计算给定二叉树的所有左叶子之和。
2 | 3 |示例:
4 | 5 |6 | 3 7 | / \ 8 | 9 20 9 | / \ 10 | 15 7 11 | 12 | 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 2413 | 14 |
15 |
给定一个二叉树,返回它的 后序 遍历。
2 | 3 |示例:
4 | 5 |输入: [1,null,2,3] 6 | 1 7 | \ 8 | 2 9 | / 10 | 3 11 | 12 | 输出: [3,2,1]13 | 14 |
进阶: 递归算法很简单,你可以通过迭代算法完成吗?
15 |输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入:head = [1,3,2] 8 | 输出:[2,3,1]9 | 10 |
11 | 12 |
限制:
13 | 14 |0 <= 链表长度 <= 10000
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
4 | 5 |
示例 1:
6 | 7 |输入:s = "We are happy." 8 | 输出:"We%20are%20happy."9 | 10 |
11 | 12 |
限制:
13 | 14 |0 <= s 的长度 <= 10000
输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。
示例 1:
4 | 5 |输入: n = 1 6 | 输出: [1,2,3,4,5,6,7,8,9] 7 |8 | 9 |
10 | 11 |
说明:
12 | 13 |给定一个二叉树,找出其最大深度。
2 | 3 |二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
4 | 5 |说明: 叶子节点是指没有子节点的节点。
6 | 7 |示例:
8 | 给定二叉树 [3,9,20,null,null,15,7],
3 11 | / \ 12 | 9 20 13 | / \ 14 | 15 715 | 16 |
返回它的最大深度 3 。
17 |给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
2 | 3 |例如:
4 | 给定二叉树 [3,9,20,null,null,15,7],
7 | 3 8 | / \ 9 | 9 20 10 | / \ 11 | 15 7 12 |13 | 14 |
返回其自底向上的层序遍历为:
15 | 16 |17 | [ 18 | [15,7], 19 | [9,20], 20 | [3] 21 | ] 22 |23 |
根据一棵树的中序遍历与后序遍历构造二叉树。
2 | 3 |注意:
4 | 你可以假设树中没有重复的元素。
例如,给出
7 | 8 |中序遍历 inorder = [9,3,15,20,7] 9 | 后序遍历 postorder = [9,15,7,20,3]10 | 11 |
返回如下的二叉树:
12 | 13 |3 14 | / \ 15 | 9 20 16 | / \ 17 | 15 7 18 |19 |
在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入: [7,5,6,4] 8 | 输出: 59 | 10 |
11 | 12 |
限制:
13 | 14 |0 <= 数组长度 <= 50000
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
2 | 3 |4 | 5 |
示例:
6 | 二叉树:[3,9,20,null,null,15,7],
9 | 3 10 | / \ 11 | 9 20 12 | / \ 13 | 15 7 14 |15 | 16 |
返回其层序遍历结果:
17 | 18 |19 | [ 20 | [3], 21 | [9,20], 22 | [15,7] 23 | ] 24 |25 |
在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。
2 | 3 |示例 1:
4 | 5 |6 | 输入:s = "abaccdeff" 7 | 输出:'b' 8 |9 | 10 |
示例 2:
11 | 12 |13 | 输入:s = "" 14 | 输出:' ' 15 |16 | 17 |
18 | 19 |
限制:
20 | 21 |0 <= s 的长度 <= 50000
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。
2 | 3 |例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。
6 | 7 |
示例:
8 | 9 |10 | 给定一个链表: 1->2->3->4->5, 和 k = 2. 11 | 12 | 返回链表 4->5.13 |
找出数组中重复的数字。
2 | 3 |
4 | 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
7 | 8 |输入: 9 | [2, 3, 1, 0, 2, 5, 3] 10 | 输出:2 或 3 11 |12 | 13 |
14 | 15 |
限制:
16 | 17 |2 <= n <= 100000
给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。
2 | 3 |4 | 5 |
示例 :
6 | 给定二叉树
1 9 | / \ 10 | 2 3 11 | / \ 12 | 4 5 13 |14 | 15 |
返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
16 | 17 |18 | 19 |
注意:两结点之间的路径长度是以它们之间边的数目表示。
20 |从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
2 | 3 |4 | 5 |
例如:
6 | 给定二叉树: [3,9,20,null,null,15,7],
3 9 | / \ 10 | 9 20 11 | / \ 12 | 15 7 13 |14 | 15 |
返回:
16 | 17 |[3,9,20,15,7] 18 |19 | 20 |
21 | 22 |
提示:
23 | 24 |节点总数 <= 1000输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。
2 | 3 |示例1:
4 | 5 |输入:1->2->4, 1->3->4 6 | 输出:1->1->2->3->4->47 | 8 |
限制:
9 | 10 |0 <= 链表长度 <= 1000
注意:本题与主站 21 题相同:https://leetcode-cn.com/problems/merge-two-sorted-lists/
13 |给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
4 | 5 |
示例 1:
6 | 7 |输入: [2,3,-2,4]
8 | 输出: 6
9 | 解释: 子数组 [2,3] 有最大乘积 6。
10 |
11 |
12 | 示例 2:
13 | 14 |输入: [-2,0,-1] 15 | 输出: 0 16 | 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。17 |
English description is not available for the problem. Please switch to Chinese.
3 | *输入一个字符串,打印出该字符串中字符的所有排列。
2 | 3 |4 | 5 |
你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。
6 | 7 |8 | 9 |
示例:
10 | 11 |输入:s = "abc" 12 | 输出:["abc","acb","bac","bca","cab","cba"] 13 |14 | 15 |
16 | 17 |
限制:
18 | 19 |1 <= s 的长度 <= 8
给定一个二叉树,检查它是否是镜像对称的。
2 | 3 |4 | 5 |
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1 8 | / \ 9 | 2 2 10 | / \ / \ 11 | 3 4 4 3 12 |13 | 14 |
15 | 16 |
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1 19 | / \ 20 | 2 2 21 | \ \ 22 | 3 3 23 |24 | 25 |
26 | 27 |
进阶:
28 | 29 |你可以运用递归和迭代两种方法解决这个问题吗?
30 |Given an integer num, return a string of its base 7 representation.
4 |
Example 1:
5 |Input: num = 100 6 | Output: "202" 7 |
Example 2:
8 |Input: num = -7 9 | Output: "-10" 10 |11 |
12 |
Constraints:
13 | 14 |-107 <= num <= 107输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
2 | 3 |4 | 5 |
示例:
6 | 7 |8 | 输入:nums = [1,2,3,4] 9 | 输出:[1,3,2,4] 10 | 注:[3,1,2,4] 也是正确的答案之一。11 | 12 |
13 | 14 |
提示:
15 | 16 |0 <= nums.length <= 500000 <= nums[i] <= 10000一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入: [0,1,3] 8 | 输出: 2 9 |10 | 11 |
示例 2:
12 | 13 |输入: [0,1,2,3,4,5,6,7,9] 14 | 输出: 815 | 16 |
17 | 18 |
限制:
19 | 20 |1 <= 数组长度 <= 10000
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
2 | 3 |4 | 5 |
例如:
6 | 给定二叉树: [3,9,20,null,null,15,7],
3 9 | / \ 10 | 9 20 11 | / \ 12 | 15 7 13 |14 | 15 |
返回其层次遍历结果:
16 | 17 |[ 18 | [3], 19 | [20,9], 20 | [15,7] 21 | ] 22 |23 | 24 |
25 | 26 |
提示:
27 | 28 |节点总数 <= 1000数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
有效括号组合需满足:左括号必须以正确的顺序闭合。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:n = 3 11 | 输出:["((()))","(()())","(())()","()(())","()()()"] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:n = 1 18 | 输出:["()"] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |1 <= n <= 8一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。
4 | 5 |
示例 1:
6 | 7 |输入:nums = [4,1,4,6] 8 | 输出:[1,6] 或 [6,1] 9 |10 | 11 |
示例 2:
12 | 13 |输入:nums = [1,2,10,4,1,4,3,3] 14 | 输出:[2,10] 或 [10,2]15 | 16 |
17 | 18 |
限制:
19 | 20 |2 <= nums.length <= 1000025 |
翻转一棵二叉树。
2 | 3 |示例:
4 | 5 |输入:
6 | 7 |4 8 | / \ 9 | 2 7 10 | / \ / \ 11 | 1 3 6 912 | 13 |
输出:
14 | 15 |4 16 | / \ 17 | 7 2 18 | / \ / \ 19 | 9 6 3 120 | 21 |
备注:
22 | 这个问题是受到 Max Howell 的 原问题 启发的 :
谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。25 |
输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
2 | 3 |例如:
4 | 5 |给定二叉树 [3,9,20,null,null,15,7],
3 8 | / \ 9 | 9 20 10 | / \ 11 | 15 712 | 13 |
返回它的最大深度 3 。
14 | 15 |16 | 17 |
提示:
18 | 19 |节点总数 <= 10000注意:本题与主站 104 题相同:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
24 |我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。
2 | 3 |4 | 5 |
示例:
6 | 7 |输入: n = 10
8 | 输出: 12
9 | 解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。
10 |
11 | 说明:
12 | 13 |1 是丑数。n 不超过1690。注意:本题与主站 264 题相同:https://leetcode-cn.com/problems/ugly-number-ii/
19 |给定一棵二叉搜索树,请找出其中第k大的节点。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入: root = [3,1,4,null,2], k = 1 8 | 3 9 | / \ 10 | 1 4 11 | \ 12 | 2 13 | 输出: 414 | 15 |
示例 2:
16 | 17 |输入: root = [5,3,6,2,4,null,null,1], k = 3 18 | 5 19 | / \ 20 | 3 6 21 | / \ 22 | 2 4 23 | / 24 | 1 25 | 输出: 426 | 27 |
28 | 29 |
限制:
30 | 31 |1 ≤ k ≤ 二叉搜索树元素个数
32 |给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入: 12258
8 | 输出: 5
9 | 解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
10 |
11 | 12 | 13 |
提示:
14 | 15 |0 <= num < 231在一个 m*n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物?
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入: 8 |15 | 16 |[ 9 | [1,3,1], 10 | [1,5,1], 11 | [4,2,1] 12 | ]13 | 输出:12 14 |解释: 路径 1→3→5→2→1 可以拿到最多价值的礼物
17 | 18 |
提示:
19 | 20 |0 < grid.length <= 2000 < grid[0].length <= 200输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。
序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |输入:target = 9 10 | 输出:[[2,3,4],[4,5]] 11 |12 | 13 |
示例 2:
14 | 15 |输入:target = 15 16 | 输出:[[1,2,3,4,5],[4,5,6],[7,8]] 17 |18 | 19 |
20 | 21 |
限制:
22 | 23 |1 <= target <= 10^528 |
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入:nums = [2,7,11,15], target = 9 8 | 输出:[2,7] 或者 [7,2] 9 |10 | 11 |
示例 2:
12 | 13 |输入:nums = [10,26,30,31,47,60], target = 40 14 | 输出:[10,30] 或者 [30,10] 15 |16 | 17 |
18 | 19 |
限制:
20 | 21 |1 <= nums.length <= 10^51 <= nums[i] <= 10^6数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。
2 | 3 |4 | 5 |
你可以假设数组是非空的,并且给定的数组总是存在多数元素。
6 | 7 |8 | 9 |
示例 1:
10 | 11 |输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 12 | 输出: 213 | 14 |
15 | 16 |
限制:
17 | 18 |1 <= 数组长度 <= 50000
21 | 22 |
注意:本题与主站 169 题相同:https://leetcode-cn.com/problems/majority-element/
23 | 24 |25 |
输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。
4 | 5 |
示例 1:
6 | 7 |输入:arr = [3,2,1], k = 2 8 | 输出:[1,2] 或者 [2,1] 9 |10 | 11 |
示例 2:
12 | 13 |输入:arr = [0,1,2,1], k = 1 14 | 输出:[0]15 | 16 |
17 | 18 |
限制:
19 | 20 |0 <= k <= arr.length <= 100000 <= arr[i] <= 10000给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。
2 | 3 |请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。
4 | 5 |示例 1:
6 | 7 |输入: 1->2->3->4->5->NULL 8 | 输出: 1->3->5->2->4->NULL 9 |10 | 11 |
示例 2:
12 | 13 |输入: 2->1->3->5->6->4->7->NULL 14 | 输出: 2->3->6->7->1->5->4->NULL15 | 16 |
说明:
17 | 18 |给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。
子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:s = "bbbab" 11 | 输出:4 12 | 解释:一个可能的最长回文子序列为 "bbbb" 。 13 |14 | 15 |
示例 2:
16 | 17 |18 | 输入:s = "cbbd" 19 | 输出:2 20 | 解释:一个可能的最长回文子序列为 "bb" 。 21 |22 | 23 |
24 | 25 |
提示:
26 | 27 |1 <= s.length <= 1000s 仅由小写英文字母组成给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:n = 4, k = 2 11 | 输出: 12 | [ 13 | [2,4], 14 | [3,4], 15 | [2,3], 16 | [1,2], 17 | [1,3], 18 | [1,4], 19 | ]20 | 21 |
示例 2:
22 | 23 |24 | 输入:n = 1, k = 1 25 | 输出:[[1]]26 | 27 |
28 | 29 |
提示:
30 | 31 |1 <= n <= 201 <= k <= n给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
4 | 5 |
示例 1:
6 | 7 |8 | 输入:nums = [1,5,11,5] 9 | 输出:true 10 | 解释:数组可以分割成 [1, 5, 5] 和 [11] 。11 | 12 |
示例 2:
13 | 14 |15 | 输入:nums = [1,2,3,5] 16 | 输出:false 17 | 解释:数组不能分割成两个元素和相等的子集。 18 |19 | 20 |
21 | 22 |
提示:
23 | 24 |1 <= nums.length <= 2001 <= nums[i] <= 100数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。
2 | 3 |请写一个函数,求任意第n位对应的数字。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |输入:n = 3 10 | 输出:3 11 |12 | 13 |
示例 2:
14 | 15 |输入:n = 11 16 | 输出:017 | 18 |
19 | 20 |
限制:
21 | 22 |0 <= n < 2^31注意:本题与主站 400 题相同:https://leetcode-cn.com/problems/nth-digit/
27 |给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
4 | 5 |
示例 1:
6 |
7 | 8 | 输入:n = 3 9 | 输出:5 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:n = 1 16 | 输出:1 17 |18 | 19 |
20 | 21 |
提示:
22 | 23 |1 <= n <= 19从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。
2 | 3 |4 | 5 |
例如:
6 | 给定二叉树: [3,9,20,null,null,15,7],
3 9 | / \ 10 | 9 20 11 | / \ 12 | 15 7 13 |14 | 15 |
返回其层次遍历结果:
16 | 17 |[ 18 | [3], 19 | [9,20], 20 | [15,7] 21 | ] 22 |23 | 24 |
25 | 26 |
提示:
27 | 28 |节点总数 <= 1000注意:本题与主站 102 题相同:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
33 |输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。
4 | 5 |
参考以下这颗二叉搜索树:
6 | 7 |5 8 | / \ 9 | 2 6 10 | / \ 11 | 1 312 | 13 |
示例 1:
14 | 15 |输入: [1,6,3,2,5] 16 | 输出: false17 | 18 |
示例 2:
19 | 20 |输入: [1,3,2,6,5] 21 | 输出: true22 | 23 |
24 | 25 |
提示:
26 | 27 |数组长度 <= 1000输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。
例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:n = 12 11 | 输出:5 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:n = 13 18 | 输出:619 | 20 |
21 | 22 |
限制:
23 | 24 |1 <= n < 2^31注意:本题与主站 233 题相同:https://leetcode-cn.com/problems/number-of-digit-one/
29 |假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
6 | 7 |
示例 1:
8 | 9 |10 | 输入:n = 2 11 | 输出:2 12 | 解释:有两种方法可以爬到楼顶。 13 | 1. 1 阶 + 1 阶 14 | 2. 2 阶15 | 16 |
示例 2:
17 | 18 |19 | 输入:n = 3 20 | 输出:3 21 | 解释:有三种方法可以爬到楼顶。 22 | 1. 1 阶 + 1 阶 + 1 阶 23 | 2. 1 阶 + 2 阶 24 | 3. 2 阶 + 1 阶 25 |26 | 27 |
28 | 29 |
提示:
30 | 31 |1 <= n <= 45定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。
2 | 3 |4 | 5 |
示例:
6 | 7 |MinStack minStack = new MinStack(); 8 | minStack.push(-2); 9 | minStack.push(0); 10 | minStack.push(-3); 11 | minStack.min(); --> 返回 -3. 12 | minStack.pop(); 13 | minStack.top(); --> 返回 0. 14 | minStack.min(); --> 返回 -2. 15 |16 | 17 |
18 | 19 |
提示:
20 | 21 |26 | 27 |
注意:本题与主站 155 题相同:https://leetcode-cn.com/problems/min-stack/
28 |输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。
2 | 3 |要求时间复杂度为O(n)。
4 | 5 |6 | 7 |
示例1:
8 | 9 |输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 10 | 输出: 6 11 | 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。12 | 13 |
14 | 15 |
提示:
16 | 17 |1 <= arr.length <= 10^5-100 <= arr[i] <= 100注意:本题与主站 53 题相同:https://leetcode-cn.com/problems/maximum-subarray/
23 | 24 |25 |
给你一个整数数组 nums 和一个整数 k ,请你统计并返回该数组中和为 k 的连续子数组的个数。
4 | 5 |
示例 1:
6 | 7 |8 | 输入:nums = [1,1,1], k = 2 9 | 输出:2 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:nums = [1,2,3], k = 3 16 | 输出:2 17 |18 | 19 |
20 | 21 |
提示:
22 | 23 |1 <= nums.length <= 2 * 104-1000 <= nums[i] <= 1000-107 <= k <= 107输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入:9 | 10 |[10,2]8 | 输出: "102"
示例 2:
11 | 12 |输入:14 | 15 |[3,30,34,5,9]13 | 输出: "3033459"
16 | 17 |
提示:
18 | 19 |0 < nums.length <= 100说明:
24 | 25 |给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [1,2,3] 11 | 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:nums = [0] 18 | 输出:[[],[0]] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互不相同写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:
4 | F(0) = 0, F(1) = 1 5 | F(N) = F(N - 1) + F(N - 2), 其中 N > 1.6 | 7 |
斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。
8 | 9 |答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
10 | 11 |12 | 13 |
示例 1:
14 | 15 |16 | 输入:n = 2 17 | 输出:1 18 |19 | 20 |
示例 2:
21 | 22 |23 | 输入:n = 5 24 | 输出:5 25 |26 | 27 |
28 | 29 |
提示:
30 | 31 |0 <= n <= 100地上有一个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。请问该机器人能够到达多少个格子?
4 | 5 |
示例 1:
6 | 7 |输入:m = 2, n = 3, k = 1 8 | 输出:3 9 |10 | 11 |
示例 2:
12 | 13 |输入:m = 3, n = 1, k = 0 14 | 输出:1 15 |16 | 17 |
提示:
18 | 19 |1 <= n,m <= 1000 <= k <= 20把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。
2 | 3 |给你一个可能存在 重复 元素值的数组 numbers ,它原来是一个升序排列的数组,并按上述情形进行了一次旋转。请返回旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一次旋转,该数组的最小值为1。
示例 1:
6 | 7 |8 | 输入:[3,4,5,1,2] 9 | 输出:1 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:[2,2,2,0,1] 16 | 输出:0 17 |18 | 19 |
注意:本题与主站 154 题相同:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/
20 |给你一个非负整数 x ,计算并返回 x 的 算术平方根 。
由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。
4 | 5 |注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5 。
8 | 9 |
示例 1:
10 | 11 |12 | 输入:x = 4 13 | 输出:2 14 |15 | 16 |
示例 2:
17 | 18 |19 | 输入:x = 8 20 | 输出:2 21 | 解释:8 的算术平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。 22 |23 | 24 |
25 | 26 |
提示:
27 | 28 |0 <= x <= 231 - 1给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:[1,2,3,4,5] 11 | 输出:此列表中的结点 3 (序列化形式:[3,4,5]) 12 | 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 13 | 注意,我们返回了一个 ListNode 类型的对象 ans,这样: 14 | ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL. 15 |16 | 17 |
示例 2:
18 | 19 |20 | 输入:[1,2,3,4,5,6] 21 | 输出:此列表中的结点 4 (序列化形式:[4,5,6]) 22 | 由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。 23 |24 | 25 |
26 | 27 |
提示:
28 | 29 |1 和 100 之间。给定一个二叉树,找出其最小深度。
2 | 3 |最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
4 | 5 |说明:叶子节点是指没有子节点的节点。
6 | 7 |8 | 9 |
示例 1:
10 |
11 | 12 | 输入:root = [3,9,20,null,null,15,7] 13 | 输出:2 14 |15 | 16 |
示例 2:
17 | 18 |19 | 输入:root = [2,null,3,null,4,null,5,null,6] 20 | 输出:5 21 |22 | 23 |
24 | 25 |
提示:
26 | 27 |[0, 105] 内-1000 <= Node.val <= 1000输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 8 | 输出:[1,2,3,6,9,8,7,4,5] 9 |10 | 11 |
示例 2:
12 | 13 |输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] 14 | 输出:[1,2,3,4,8,12,11,10,9,5,6,7] 15 |16 | 17 |
18 | 19 |
限制:
20 | 21 |0 <= matrix.length <= 1000 <= matrix[i].length <= 100注意:本题与主站 54 题相同:https://leetcode-cn.com/problems/spiral-matrix/
27 |给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
2 | 3 |返回删除后的链表的头节点。
4 | 5 |注意:此题对比原题有改动
6 | 7 |示例 1:
8 | 9 |输入: head = [4,5,1,9], val = 5 10 | 输出: [4,1,9] 11 | 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 12 |13 | 14 |
示例 2:
15 | 16 |输入: head = [4,5,1,9], val = 1 17 | 输出: [4,5,9] 18 | 解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9. 19 |20 | 21 |
22 | 23 |
说明:
24 | 25 |free 或 delete 被删除的节点给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
数组中的每个元素代表你在该位置可以跳跃的最大长度。
4 | 5 |判断你是否能够到达最后一个下标。
6 | 7 |8 | 9 |
示例 1:
10 | 11 |12 | 输入:nums = [2,3,1,1,4] 13 | 输出:true 14 | 解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。 15 |16 | 17 |
示例 2:
18 | 19 |20 | 输入:nums = [3,2,1,0,4] 21 | 输出:false 22 | 解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。 23 |24 | 25 |
26 | 27 |
提示:
28 | 29 |1 <= nums.length <= 3 * 1040 <= nums[i] <= 105一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
4 | 5 |示例 1:
6 | 7 |输入:n = 2 8 | 输出:2 9 |10 | 11 |
示例 2:
12 | 13 |输入:n = 7 14 | 输出:21 15 |16 | 17 |
示例 3:
18 | 19 |输入:n = 0 20 | 输出:121 | 22 |
提示:
23 | 24 |0 <= n <= 100注意:本题与主站 70 题相同:https://leetcode-cn.com/problems/climbing-stairs/
29 | 30 |31 |
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
4 | 5 |
示例 1:
6 | 7 |8 | 输入:nums = [1,2,3] 9 | 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:nums = [0,1] 16 | 输出:[[0,1],[1,0]] 17 |18 | 19 |
示例 3:
20 | 21 |22 | 输入:nums = [1] 23 | 输出:[[1]] 24 |25 | 26 |
27 | 28 |
提示:
29 | 30 |1 <= nums.length <= 6-10 <= nums[i] <= 10nums 中的所有整数 互不相同输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)
2 | 3 |B是A的子结构, 即 A中有出现和B相同的结构和节点值。
4 | 5 |例如:
6 | 给定的树 A:
3
9 | / \
10 | 4 5
11 | / \
12 | 1 2
13 | 给定的树 B:
4
16 | /
17 | 1
18 | 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。
示例 1:
21 | 22 |输入:A = [1,2,3], B = [3,1] 23 | 输出:false 24 |25 | 26 |
示例 2:
27 | 28 |输入:A = [3,4,5,1,2], B = [4,1] 29 | 输出:true30 | 31 |
限制:
32 | 33 |0 <= 节点个数 <= 10000
English description is not available for the problem. Please switch to Chinese.
3 | *给你一个字符串 s,找到 s 中最长的回文子串。
4 | 5 |
示例 1:
6 | 7 |8 | 输入:s = "babad" 9 | 输出:"bab" 10 | 解释:"aba" 同样是符合题意的答案。 11 |12 | 13 |
示例 2:
14 | 15 |16 | 输入:s = "cbbd" 17 | 输出:"bb" 18 |19 | 20 |
示例 3:
21 | 22 |23 | 输入:s = "a" 24 | 输出:"a" 25 |26 | 27 |
示例 4:
28 | 29 |30 | 输入:s = "ac" 31 | 输出:"a" 32 |33 | 34 |
35 | 36 |
提示:
37 | 38 |1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。
2 | 3 |求在该柱状图中,能够勾勒出来的矩形的最大面积。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |
12 | 输入:heights = [2,1,5,6,2,3] 13 | 输出:10 14 | 解释:最大的矩形为图中红色区域,面积为 10 15 |16 | 17 |
示例 2:
18 | 19 |
22 | 输入: heights = [2,4] 23 | 输出: 424 | 25 |
26 | 27 |
提示:
28 | 29 |1 <= heights.length <=1050 <= heights[i] <= 104给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
示例 1:
4 | 5 |输入: 2 6 | 输出: 1 7 | 解释: 2 = 1 + 1, 1 × 1 = 18 | 9 |
示例 2:
10 | 11 |输入: 10 12 | 输出: 36 13 | 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3614 | 15 |
提示:
16 | 17 |2 <= n <= 58注意:本题与主站 343 题相同:https://leetcode-cn.com/problems/integer-break/
22 |给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。
4 | 5 |
示例 1:
6 |
7 | 8 | 输入:head = [1,2,3,4,5], k = 2 9 | 输出:[4,5,1,2,3] 10 |11 | 12 |
示例 2:
13 |
14 | 15 | 输入:head = [0,1,2], k = 4 16 | 输出:[2,0,1] 17 |18 | 19 |
20 | 21 |
提示:
22 | 23 |[0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [-1,0,1,2,-1,-4] 11 | 输出:[[-1,-1,2],[-1,0,1]] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:nums = [] 18 | 输出:[] 19 |20 | 21 |
示例 3:
22 | 23 |24 | 输入:nums = [0] 25 | 输出:[] 26 |27 | 28 |
29 | 30 |
提示:
31 | 32 |0 <= nums.length <= 3000-105 <= nums[i] <= 105给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
2 | 3 |你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。
4 | 5 |示例 1:
6 | 7 |8 | 输入: 9 | Tree 1 Tree 2 10 | 1 2 11 | / \ / \ 12 | 3 2 1 3 13 | / \ \ 14 | 5 4 7 15 | 输出: 16 | 合并后的树: 17 | 3 18 | / \ 19 | 4 5 20 | / \ \ 21 | 5 4 7 22 |23 | 24 |
注意: 合并必须从两个树的根节点开始。
25 |存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | 输入:head = [1,1,2] 11 | 输出:[1,2] 12 |13 | 14 |
示例 2:
15 |
16 | 17 | 输入:head = [1,1,2,3,3] 18 | 输出:[1,2,3] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |[0, 300] 内-100 <= Node.val <= 100English description is not available for the problem. Please switch to Chinese.
3 | *你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
2 | 3 |给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:[1,2,3,1] 11 | 输出:4 12 | 解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 13 | 偷窃到的最高金额 = 1 + 3 = 4 。14 | 15 |
示例 2:
16 | 17 |18 | 输入:[2,7,9,3,1] 19 | 输出:12 20 | 解释:偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。 21 | 偷窃到的最高金额 = 2 + 9 + 1 = 12 。 22 |23 | 24 |
25 | 26 |
提示:
27 | 28 |1 <= nums.length <= 1000 <= nums[i] <= 400给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
4 | 5 |
示例 1:
6 | 7 |
10 | 输入: [1,2,3,null,5,null,4] 11 | 输出: [1,3,4] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入: [1,null,3] 18 | 输出: [1,3] 19 |20 | 21 |
示例 3:
22 | 23 |24 | 输入: [] 25 | 输出: [] 26 |27 | 28 |
29 | 30 |
提示:
31 | 32 |[0,100]-100 <= Node.val <= 100 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。
2 | 3 |最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
4 | 5 |你可以假设除了整数 0 之外,这个整数不会以零开头。
6 | 7 |8 | 9 |
示例 1:
10 | 11 |12 | 输入:digits = [1,2,3] 13 | 输出:[1,2,4] 14 | 解释:输入数组表示数字 123。 15 |16 | 17 |
示例 2:
18 | 19 |20 | 输入:digits = [4,3,2,1] 21 | 输出:[4,3,2,2] 22 | 解释:输入数组表示数字 4321。 23 |24 | 25 |
示例 3:
26 | 27 |28 | 输入:digits = [0] 29 | 输出:[1] 30 |31 | 32 |
33 | 34 |
提示:
35 | 36 |1 <= digits.length <= 1000 <= digits[i] <= 9给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。
你应当 保留 两个分区中每个节点的初始相对位置。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | 输入:head = [1,4,3,2,5,2], x = 3 11 | 输出:[1,2,2,4,3,5] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:head = [2,1], x = 2 18 | 输出:[1,2] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |[0, 200] 内-100 <= Node.val <= 100-200 <= x <= 200在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
2 | 3 |4 | 5 |
示例:
6 | 7 |现有矩阵 matrix 如下:
8 | 9 |10 | [ 11 | [1, 4, 7, 11, 15], 12 | [2, 5, 8, 12, 19], 13 | [3, 6, 9, 16, 22], 14 | [10, 13, 14, 17, 24], 15 | [18, 21, 23, 26, 30] 16 | ] 17 |18 | 19 |
给定 target = 5,返回 true。
给定 target = 20,返回 false。
24 | 25 |
限制:
26 | 27 |0 <= n <= 1000
0 <= m <= 1000
32 | 33 |
注意:本题与主站 240 题相同:https://leetcode-cn.com/problems/search-a-2d-matrix-ii/
34 |English description is not available for the problem. Please switch to Chinese.
3 | *将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
2 | 3 |4 | 5 |
示例 1:
6 |
7 | 8 | 输入:l1 = [1,2,4], l2 = [1,3,4] 9 | 输出:[1,1,2,3,4,4] 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:l1 = [], l2 = [] 16 | 输出:[] 17 |18 | 19 |
示例 3:
20 | 21 |22 | 输入:l1 = [], l2 = [0] 23 | 输出:[0] 24 |25 | 26 |
27 | 28 |
提示:
29 | 30 |[0, 50]-100 <= Node.val <= 100l1 和 l2 均按 非递减顺序 排列以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。
4 | 5 |
示例 1:
6 | 7 |8 | 输入:intervals = [[1,3],[2,6],[8,10],[15,18]] 9 | 输出:[[1,6],[8,10],[15,18]] 10 | 解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]. 11 |12 | 13 |
示例 2:
14 | 15 |16 | 输入:intervals = [[1,4],[4,5]] 17 | 输出:[[1,5]] 18 | 解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。19 | 20 |
21 | 22 |
提示:
23 | 24 |1 <= intervals.length <= 104intervals[i].length == 20 <= starti <= endi <= 104请实现两个函数,分别用来序列化和反序列化二叉树。
2 | 3 |你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。
4 | 5 |提示:输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方法解决这个问题。
6 | 7 |8 | 9 |
示例:
10 |
11 | 12 | 输入:root = [1,2,3,null,null,4,5] 13 | 输出:[1,2,3,null,null,4,5] 14 |15 | 16 |
17 | 18 |
注意:本题与主站 297 题相同:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/
19 |给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。
说明:每次只能向下或者向右移动一步。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 11 | 输出:7 12 | 解释:因为路径 1→3→1→1→1 的总和最小。 13 |14 | 15 |
示例 2:
16 | 17 |18 | 输入:grid = [[1,2,3],[4,5,6]] 19 | 输出:12 20 |21 | 22 |
23 | 24 |
提示:
25 | 26 |m == grid.lengthn == grid[i].length1 <= m, n <= 2000 <= grid[i][j] <= 100请完成一个函数,输入一个二叉树,该函数输出它的镜像。
2 | 3 |例如输入:
4 | 5 | 4
6 | / \
7 | 2 7
8 | / \ / \
9 | 1 3 6 9
10 | 镜像输出:
4
13 | / \
14 | 7 2
15 | / \ / \
16 | 9 6 3 1
19 | 20 |
示例 1:
21 | 22 |输入:root = [4,2,7,1,3,6,9] 23 | 输出:[4,7,2,9,6,3,1] 24 |25 | 26 |
27 | 28 |
限制:
29 | 30 |0 <= 节点个数 <= 1000
注意:本题与主站 226 题相同:https://leetcode-cn.com/problems/invert-binary-tree/
33 |给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
2 | 3 |你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | 输入:head = [1,2,3,4] 11 | 输出:[2,1,4,3] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:head = [] 18 | 输出:[] 19 |20 | 21 |
示例 3:
22 | 23 |24 | 输入:head = [1] 25 | 输出:[1] 26 |27 | 28 |
29 | 30 |
提示:
31 | 32 |[0, 100] 内0 <= Node.val <= 10038 | 39 |
进阶:你能在不修改链表节点值的情况下解决这个问题吗?(也就是说,仅修改节点本身。)
40 |存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。
返回同样按升序排列的结果链表。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | 输入:head = [1,2,3,3,4,4,5] 11 | 输出:[1,2,5] 12 |13 | 14 |
示例 2:
15 |
16 | 17 | 输入:head = [1,1,1,2,3] 18 | 输出:[2,3] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |[0, 300] 内-100 <= Node.val <= 100输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |给定二叉树 [3,9,20,null,null,15,7]
10 | 3 11 | / \ 12 | 9 20 13 | / \ 14 | 15 715 | 16 |
返回 true 。
17 |
18 | 示例 2:
给定二叉树 [1,2,2,3,3,null,null,4,4]
23 | 1 24 | / \ 25 | 2 2 26 | / \ 27 | 3 3 28 | / \ 29 | 4 4 30 |31 | 32 |
返回 false 。
35 | 36 |
限制:
37 | 38 |0 <= 树的结点个数 <= 10000注意:本题与主站 110 题相同:https://leetcode-cn.com/problems/balanced-binary-tree/
43 | 44 |45 |
head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
2 | 3 | 4 |
示例 1:
5 |
6 | 7 | 输入:head = [1,2,6,3,4,5,6], val = 6 8 | 输出:[1,2,3,4,5] 9 |10 | 11 |
示例 2:
12 | 13 |14 | 输入:head = [], val = 1 15 | 输出:[] 16 |17 | 18 |
示例 3:
19 | 20 |21 | 输入:head = [7,7,7,7], val = 7 22 | 输出:[] 23 |24 | 25 |
26 | 27 |
提示:
28 | 29 |[0, 104] 内1 <= Node.val <= 500 <= val <= 50给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
2 | 3 |字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |
10 | 输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
11 | 输出: [["bat"],["nat","tan"],["ate","eat","tea"]]
12 |
13 | 示例 2:
14 | 15 |
16 | 输入: strs = [""]
17 | 输出: [[""]]
18 |
19 |
20 | 示例 3:
21 | 22 |
23 | 输入: strs = ["a"]
24 | 输出: [["a"]]
25 |
26 | 27 | 28 |
提示:
29 | 30 |1 <= strs.length <= 1040 <= strs[i].length <= 100strs[i] 仅包含小写字母输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。
2 | 3 |假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
4 | 5 |6 | 7 |
示例 1:
8 |
9 | 10 | Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7] 11 | Output: [3,9,20,null,null,15,7] 12 |13 | 14 |
示例 2:
15 | 16 |17 | Input: preorder = [-1], inorder = [-1] 18 | Output: [-1] 19 |20 | 21 |
22 | 23 |
限制:
24 | 25 |0 <= 节点个数 <= 5000
28 | 29 |
注意:本题与主站 105 题重复:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/
30 |用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )
4 | 5 |
示例 1:
6 | 7 |输入: 8 | ["CQueue","appendTail","deleteHead","deleteHead"] 9 | [[],[3],[],[]] 10 | 输出:[null,null,3,-1] 11 |12 | 13 |
示例 2:
14 | 15 |输入: 16 | ["CQueue","deleteHead","appendTail","appendTail","deleteHead","deleteHead"] 17 | [[],[],[5],[2],[],[]] 18 | 输出:[null,-1,null,null,5,2] 19 |20 | 21 |
提示:
22 | 23 |1 <= values <= 10000最多会对 appendTail、deleteHead 进行 10000 次调用给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。
示例:
4 | 5 |输入: nums =17 | 18 |[1,3,-1,-3,5,3,6,7], 和 k = 3 6 | 输出:[3,3,5,5,6,7] 7 | 解释: 8 |9 | 滑动窗口的位置 最大值 10 | --------------- ----- 11 | [1 3 -1] -3 5 3 6 7 3 12 | 1 [3 -1 -3] 5 3 6 7 3 13 | 1 3 [-1 -3 5] 3 6 7 5 14 | 1 3 -1 [-3 5 3] 6 7 5 15 | 1 3 -1 -3 [5 3 6] 7 6 16 | 1 3 -1 -3 5 [3 6 7] 7
19 | 20 |
提示:
21 | 22 |你可以假设 k 总是有效的,在输入数组不为空的情况下,1 ≤ k ≤ 输入数组的大小。
23 | 24 |注意:本题与主站 239 题相同:https://leetcode-cn.com/problems/sliding-window-maximum/
25 |给定一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [1,2,3] 11 | 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] 12 |13 | 14 |
示例 2:
15 | 16 |17 | 输入:nums = [0] 18 | 输出:[[],[0]] 19 |20 | 21 |
22 | 23 |
提示:
24 | 25 |1 <= nums.length <= 10-10 <= nums[i] <= 10nums 中的所有元素 互不相同32 | 33 |
注意:本题与主站 78 题相同: https://leetcode-cn.com/problems/subsets/
34 |head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。
2 | 3 | 4 |
示例 1:
5 |
6 | 7 | 输入:head = [1,2,3,4,5], left = 2, right = 4 8 | 输出:[1,4,3,2,5] 9 |10 | 11 |
示例 2:
12 | 13 |14 | 输入:head = [5], left = 1, right = 1 15 | 输出:[5] 16 |17 | 18 |
19 | 20 |
提示:
21 | 22 |n1 <= n <= 500-500 <= Node.val <= 5001 <= left <= right <= n30 | 31 |
进阶: 你可以使用一趟扫描完成反转吗?
32 |English description is not available for the problem. Please switch to Chinese.
3 | *给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
4 | 示例 1:
输入:10 | 11 |nums= [-1,0,3,5,9,12],target= 9 7 | 输出: 4 8 | 解释: 9 出现在nums中并且下标为 4 9 |
示例 2:
12 | 13 |输入:17 | 18 |nums= [-1,0,3,5,9,12],target= 2 14 | 输出: -1 15 | 解释: 2 不存在nums中因此返回 -1 16 |
19 | 20 |
提示:
21 | 22 |nums 中的所有元素是不重复的。n 将在 [1, 10000]之间。nums 的每个元素都将在 [-9999, 9999]之间。给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m - 1] 。请问 k[0]*k[1]*...*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。
答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |输入: 2 10 | 输出: 1 11 | 解释: 2 = 1 + 1, 1 × 1 = 112 | 13 |
示例 2:
14 | 15 |输入: 10 16 | 输出: 36 17 | 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 3618 | 19 |
20 | 21 |
提示:
22 | 23 |2 <= n <= 1000注意:本题与主站 343 题相同:https://leetcode-cn.com/problems/integer-break/
28 |实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |8 | 输入:x = 2.00000, n = 10 9 | 输出:1024.00000 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:x = 2.10000, n = 3 16 | 输出:9.26100 17 |18 | 19 |
示例 3:
20 | 21 |22 | 输入:x = 2.00000, n = -2 23 | 输出:0.25000 24 | 解释:2-2 = 1/22 = 1/4 = 0.25 25 |26 | 27 |
28 | 29 |
提示:
30 | 31 |-100.0 < x < 100.0-231 <= n <= 231-1-104 <= xn <= 104给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。
4 | 5 |返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
8 | 9 |
示例 1:
10 | 11 |12 | 输入:[7,1,5,3,6,4] 13 | 输出:5 14 | 解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 15 | 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。 16 |17 | 18 |
示例 2:
19 | 20 |21 | 输入:prices = [7,6,4,3,1] 22 | 输出:0 23 | 解释:在这种情况下, 没有交易完成, 所以最大利润为 0。 24 |25 | 26 |
27 | 28 |
提示:
29 | 30 |1 <= prices.length <= 1050 <= prices[i] <= 104给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。
4 | 5 |
示例 1:
6 |
7 | 8 | 输入:head = [1,2,2,1] 9 | 输出:true 10 |11 | 12 |
示例 2:
13 |
14 | 15 | 输入:head = [1,2] 16 | 输出:false 17 |18 | 19 |
20 | 21 |
提示:
22 | 23 |[1, 105] 内0 <= Node.val <= 929 | 30 |
进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?
统计一个数字在排序数组中出现的次数。
2 | 3 |4 | 5 |
示例 1:
6 | 7 |
8 | 输入: nums = [5,7,7,8,8,10], target = 8
9 | 输出: 2
10 |
11 | 示例 2:
12 | 13 |
14 | 输入: nums = [5,7,7,8,8,10], target = 6
15 | 输出: 0
16 |
17 | 18 | 19 |
提示:
20 | 21 |0 <= nums.length <= 105-109 <= nums[i] <= 109nums 是一个非递减数组-109 <= target <= 10929 | 30 |
注意:本题与主站 34 题相同(仅返回值不同):https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/
31 |给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。
子数组 是数组中的一个连续部分。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 11 | 输出:6 12 | 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 13 |14 | 15 |
示例 2:
16 | 17 |18 | 输入:nums = [1] 19 | 输出:1 20 |21 | 22 |
示例 3:
23 | 24 |25 | 输入:nums = [5,4,-1,7,8] 26 | 输出:23 27 |28 | 29 |
30 | 31 |
提示:
32 | 33 |1 <= nums.length <= 105-104 <= nums[i] <= 10439 | 40 |
进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的 分治法 求解。
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
4 | 5 |
示例 1:
6 |
7 | 8 | 输入:head = [1,2,3,4,5], n = 2 9 | 输出:[1,2,3,5] 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入:head = [1], n = 1 16 | 输出:[] 17 |18 | 19 |
示例 3:
20 | 21 |22 | 输入:head = [1,2], n = 1 23 | 输出:[1] 24 |25 | 26 |
27 | 28 |
提示:
29 | 30 |sz1 <= sz <= 300 <= Node.val <= 1001 <= n <= sz38 | 39 |
进阶:你能尝试使用一趟扫描实现吗?
40 |请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。
示例 1:
4 | 5 |
6 | 输入: temperatures = [73,74,75,71,69,72,76,73]
7 | 输出: [1,1,4,2,1,1,0,0]
8 |
9 |
10 | 示例 2:
11 | 12 |13 | 输入: temperatures = [30,40,50,60] 14 | 输出: [1,1,1,0] 15 |16 | 17 |
示例 3:
18 | 19 |20 | 输入: temperatures = [30,60,90] 21 | 输出: [1,1,0]22 | 23 |
24 | 25 |
提示:
26 | 27 |1 <= temperatures.length <= 10530 <= temperatures[i] <= 100给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
4 | 5 |
8 | 9 |
示例 1:
10 | 11 |12 | 输入:digits = "23" 13 | 输出:["ad","ae","af","bd","be","bf","cd","ce","cf"] 14 |15 | 16 |
示例 2:
17 | 18 |19 | 输入:digits = "" 20 | 输出:[] 21 |22 | 23 |
示例 3:
24 | 25 |26 | 输入:digits = "2" 27 | 输出:["a","b","c"] 28 |29 | 30 |
31 | 32 |
提示:
33 | 34 |0 <= digits.length <= 4digits[i] 是范围 ['2', '9'] 的一个数字。给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。
4 | 5 |
示例 1:
6 | 7 |8 | 输入: s = "aba" 9 | 输出: true 10 |11 | 12 |
示例 2:
13 | 14 |15 | 输入: s = "abca" 16 | 输出: true 17 | 解释: 可以删除 "c" 字符 或者 "b" 字符 18 |19 | 20 |
示例 3:
21 | 22 |23 | 输入: s = "abc" 24 | 输出: false25 | 26 |
27 | 28 |
提示:
29 | 30 |1 <= s.length <= 105s 由小写英文字母组成36 | 37 |
注意:本题与主站 680 题相同: https://leetcode-cn.com/problems/valid-palindrome-ii/
38 |给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。
本题中,将空字符串定义为有效的 回文串 。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入: s = "A man, a plan, a canal: Panama" 11 | 输出: true 12 | 解释:"amanaplanacanalpanama" 是回文串13 | 14 |
示例 2:
15 | 16 |17 | 输入: s = "race a car" 18 | 输出: false 19 | 解释:"raceacar" 不是回文串20 | 21 |
22 | 23 |
提示:
24 | 25 |1 <= s.length <= 2 * 105s 由 ASCII 字符组成31 | 32 |
注意:本题与主站 125 题相同: https://leetcode-cn.com/problems/valid-palindrome/
33 |给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。
进阶:
4 | 5 |O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序吗?10 | 11 |
示例 1:
12 |
13 | 14 | 输入:head = [4,2,1,3] 15 | 输出:[1,2,3,4] 16 |17 | 18 |
示例 2:
19 |
20 | 21 | 输入:head = [-1,5,3,4,0] 22 | 输出:[-1,0,3,4,5] 23 |24 | 25 |
示例 3:
26 | 27 |28 | 输入:head = [] 29 | 输出:[] 30 |31 | 32 |
33 | 34 |
提示:
35 | 36 |[0, 5 * 104] 内-105 <= Node.val <= 105峰值元素是指其值严格大于左右相邻值的元素。
2 | 3 |给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。
你可以假设 nums[-1] = nums[n] = -∞ 。
你必须实现时间复杂度为 O(log n) 的算法来解决此问题。
10 | 11 |
示例 1:
12 | 13 |
14 | 输入:nums = [1,2,3,1]
15 | 输出:2
16 | 解释:3 是峰值元素,你的函数应该返回其索引 2。
17 |
18 | 示例 2:
19 | 20 |
21 | 输入:nums = [1,2,1,3,5,6,4]
22 | 输出:1 或 5
23 | 解释:你的函数可以返回索引 1,其峰值元素为 2;
24 | 或者返回索引 5, 其峰值元素为 6。
25 |
26 |
27 | 28 | 29 |
提示:
30 | 31 |1 <= nums.length <= 1000-231 <= nums[i] <= 231 - 1i 都有 nums[i] != nums[i + 1]head ,请你反转链表,并返回反转后的链表。
2 | 5 | 6 |
示例 1:
7 |
8 | 9 | 输入:head = [1,2,3,4,5] 10 | 输出:[5,4,3,2,1] 11 |12 | 13 |
示例 2:
14 |
15 | 16 | 输入:head = [1,2] 17 | 输出:[2,1] 18 |19 | 20 |
示例 3:
21 | 22 |23 | 输入:head = [] 24 | 输出:[] 25 |26 | 27 |
28 | 29 |
提示:
30 | 31 |[0, 5000]-5000 <= Node.val <= 500037 | 38 |
进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?
39 |你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。
2 | 3 |给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [2,3,2] 11 | 输出:3 12 | 解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。 13 |14 | 15 |
示例 2:
16 | 17 |18 | 输入:nums = [1,2,3,1] 19 | 输出:4 20 | 解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。 21 | 偷窃到的最高金额 = 1 + 3 = 4 。22 | 23 |
示例 3:
24 | 25 |26 | 输入:nums = [1,2,3] 27 | 输出:3 28 |29 | 30 |
31 | 32 |
提示:
33 | 34 |1 <= nums.length <= 1000 <= nums[i] <= 1000给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。
路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |
12 | 输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8 13 | 输出:3 14 | 解释:和等于 8 的路径有 3 条,如图所示。 15 |16 | 17 |
示例 2:
18 | 19 |20 | 输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22 21 | 输出:3 22 |23 | 24 |
25 | 26 |
提示:
27 | 28 |[0,1000]-109 <= Node.val <= 109 -1000 <= targetSum <= 1000 给你一个整数数组 nums 和一个整数 k。如果某个连续子数组中恰好有 k 个奇数数字,我们就认为这个子数组是「优美子数组」。
请返回这个数组中 「优美子数组」 的数目。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |10 | 输入:nums = [1,1,2,1,1], k = 3 11 | 输出:2 12 | 解释:包含 3 个奇数的子数组是 [1,1,2,1] 和 [1,2,1,1] 。 13 |14 | 15 |
示例 2:
16 | 17 |18 | 输入:nums = [2,4,6], k = 1 19 | 输出:0 20 | 解释:数列中不包含任何奇数,所以不存在优美子数组。 21 |22 | 23 |
示例 3:
24 | 25 |26 | 输入:nums = [2,2,2,1,2,2,1,2,2,2], k = 2 27 | 输出:16 28 |29 | 30 |
31 | 32 |
提示:
33 | 34 |1 <= nums.length <= 500001 <= nums[i] <= 10^51 <= k <= nums.length实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。
2 | 3 |如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。
4 | 5 |必须 原地 修改,只允许使用额外常数空间。
6 | 7 |8 | 9 |
示例 1:
10 | 11 |12 | 输入:nums = [1,2,3] 13 | 输出:[1,3,2] 14 |15 | 16 |
示例 2:
17 | 18 |19 | 输入:nums = [3,2,1] 20 | 输出:[1,2,3] 21 |22 | 23 |
示例 3:
24 | 25 |26 | 输入:nums = [1,1,5] 27 | 输出:[1,5,1] 28 |29 | 30 |
示例 4:
31 | 32 |33 | 输入:nums = [1] 34 | 输出:[1] 35 |36 | 37 |
38 | 39 |
提示:
40 | 41 |1 <= nums.length <= 1000 <= nums[i] <= 100给定一个二叉树,判断它是否是高度平衡的二叉树。
2 | 3 |本题中,一棵高度平衡二叉树定义为:
4 | 5 |6 |8 | 9 |一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。
7 |
10 | 11 |
示例 1:
12 |
13 | 14 | 输入:root = [3,9,20,null,null,15,7] 15 | 输出:true 16 |17 | 18 |
示例 2:
19 |
20 | 21 | 输入:root = [1,2,2,3,3,null,null,4,4] 22 | 输出:false 23 |24 | 25 |
示例 3:
26 | 27 |28 | 输入:root = [] 29 | 输出:true 30 |31 | 32 |
33 | 34 |
提示:
35 | 36 |[0, 5000] 内-104 <= Node.val <= 104给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。
4 | 5 |注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
6 | 7 |8 | 9 |
示例 1:
10 | 11 |12 | 输入:k = 2, prices = [2,4,1] 13 | 输出:2 14 | 解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2 。15 | 16 |
示例 2:
17 | 18 |19 | 输入:k = 2, prices = [3,2,6,5,0,3] 20 | 输出:7 21 | 解释:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4 。 22 | 随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3 。23 | 24 |
25 | 26 |
提示:
27 | 28 |0 <= k <= 1000 <= prices.length <= 10000 <= prices[i] <= 1000请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。
2 | 3 |例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
4 | 5 | 1
6 | / \
7 | 2 2
8 | / \ / \
9 | 3 4 4 3
10 | 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
13 | / \
14 | 2 2
15 | \ \
16 | 3 3
19 | 20 |
示例 1:
21 | 22 |输入:root = [1,2,2,3,4,4,3] 23 | 输出:true 24 |25 | 26 |
示例 2:
27 | 28 |输入:root = [1,2,2,null,3,null,3] 29 | 输出:false30 | 31 |
32 | 33 |
限制:
34 | 35 |0 <= 节点个数 <= 1000
注意:本题与主站 101 题相同:https://leetcode-cn.com/problems/symmetric-tree/
38 |给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。
换句话说,第一个字符串的排列之一是第二个字符串的 子串 。
4 | 5 |6 | 7 |
示例 1:
8 | 9 |
10 | 输入: s1 = "ab" s2 = "eidbaooo"
11 | 输出: True
12 | 解释: s2 包含 s1 的排列之一 ("ba").
13 |
14 |
15 | 示例 2:
16 | 17 |18 | 输入: s1= "ab" s2 = "eidboaoo" 19 | 输出: False 20 |21 | 22 |
23 | 24 |
提示:
25 | 26 |1 <= s1.length, s2.length <= 104s1 和 s2 仅包含小写字母32 | 33 |
注意:本题与主站 567 题相同: https://leetcode-cn.com/problems/permutation-in-string/
34 |给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
2 | 3 |请你将两个数相加,并以相同形式返回一个表示和的链表。
4 | 5 |你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
6 | 7 |8 | 9 |
示例 1:
10 |
11 | 12 | 输入:l1 = [2,4,3], l2 = [5,6,4] 13 | 输出:[7,0,8] 14 | 解释:342 + 465 = 807. 15 |16 | 17 |
示例 2:
18 | 19 |20 | 输入:l1 = [0], l2 = [0] 21 | 输出:[0] 22 |23 | 24 |
示例 3:
25 | 26 |27 | 输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9] 28 | 输出:[8,9,9,9,0,0,0,1] 29 |30 | 31 |
32 | 33 |
提示:
34 | 35 |[1, 100] 内0 <= Node.val <= 9