质因数分解
题目
题目
题目
题目
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。 举例:一个 ip 地址为 10.0.3.193
计算1000w以内有多少个质数。
题目链接
题目
题目
给定两个(单向)链表,判定它们是否相交并返回交点。请注意相交的定义基于节点的引用,而不是基于节点的值。换句话说,如果一个链表的第k个节点与另一个链表的第j个节点是同一节点(引用完全相同),则这两个链表相交。
题目
题目
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串”abcdefg”和数字2,该函数将返回左旋转两位得到的结果”cdefgab”。
请实现一个函数,把字符串 s 中的每个空格替换成”%20”。
题目链接
题目链接
力扣链接
给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
题目链接
给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们可以多次选择同一个索引 i。)
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。
设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。
题目链接
给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。
题目链接
题目链接
设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。
给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。
给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回 NULL。
题目链接
题目链接
给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树不应该改变保留在树中的元素的相对结构(即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在唯一的答案。
给定一个不含重复元素的整数数组 nums 。一个以此数组直接递归构建的 最大二叉树 定义如下:
题目链接
给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。
给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。
给定一个 N 叉树,返回其节点值的 后序遍历 。
给定一个 N 叉树,返回其节点值的 前序遍历 。
题目链接
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。
给定一个 N 叉树,找到其最大深度。
给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。
给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。
给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。
题目链接
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:
给定一个有相同值的二叉搜索树(BST),找出 BST 中的所有众数(出现频率最高的元素)。
给你一个整数数组 nums 和一个整数 target 。
给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。
力扣链接
题目链接
给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。
给定一个二叉搜索树的根节点 root 和一个值 key,删除二叉搜索树中的 key 对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
计算给定二叉树的所有左叶子之和。
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。如果可以构成,返回 true ;否则返回 false。
题目链接
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
题目链接
给定两个数组,编写一个函数来计算它们的交集。
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
题目链接
给你一份航线列表 tickets ,其中 tickets[i] = [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。
题目链接
题目链接
题目链接
题目链接
给定一个二叉树,返回所有从根节点到叶子节点的路径。
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
题目链接
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
翻转一棵二叉树。
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。
给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。
难度中等326收藏分享切换为英文接收动态反馈
题目链接
题目链接
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
编写一个算法来判断一个数 n 是不是快乐数。
题目链接
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
题目链接
题目链接
题目链接
题目链接
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。
根据 逆波兰表示法,求表达式的值。
题目链接
给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回排序后链表的头 。
给定一个二叉树,返回它的 后序 遍历。
给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
题目链接
给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
题目链接
题目链接
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
题目链接
题目链接
题目链接
给定一个二叉树
给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:
题目链接
题目链接
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。
给定一个二叉树,找出其最小深度。
给定一个二叉树,判断它是否是高度平衡的二叉树。
给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
根据一棵树的中序遍历与后序遍历构造二叉树。
给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。
给定一个二叉树,找出其最大深度。
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
给定一个二叉树,检查它是否是镜像对称的。
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
给定一个二叉树的根节点 root ,返回它的 中序 遍历。
给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。
给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
题目链接
题目
题目链接
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
题目链接
给你一个字符串 path ,表示指向某一文件或目录的 Unix 风格 绝对路径 (以 '/' 开头),请你将其转化为更加简洁的规范路径。
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
实现 int sqrt(int x) 函数。
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
[题目描述] (https://leetcode.cn/problems/rotate-list/)
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。
题目链接
n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。
给你一个非负整数数组 nums ,你最初位于数组的第一个位置。
题目
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
编写一个程序,通过填充空格来解决数独问题。
题目
实现 strStr() 函数。
题目链接
题目链接
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
题目链接
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。
题目链接
题目链接
题目链接
题目链接
题目链接
题目链接
题目链接
题目链接
题目链接
1.题目
先判断边界条件,尤其注意 int 类型边界问题。 数据如果元素顺序对结果没有影响的话尝试先进行排序。 数组遍历的时候试一下倒序遍历,看是否比正序更好处理。 数组双层循环遍历使用双指针优化,双指针还可以尝试下同向、逆向、相向是否可行。 如果无思路就先想出暴力解法,再根据暴力解法进行优化。 ...
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spr...
Bean 容器找到配置文件中 Spring Bean 的定义。 Bean 容器利用 Java Reflection API 创建一个Bean的实例。 如果涉及到一些属性值 利用 set()方法设置一些属性值。 如果 Bean 实现了 BeanNameAware 接口,调用 setBeanName...
[TOC]
前面写过 Spring IOC 的源码分析,很多读者希望可以出一个 Spring AOP 的源码分析,不过 Spring AOP 的源码还是比较多的,写出来不免篇幅会大些。
SpringMVC 其实就是对 Servlet 的封装,屏蔽掉 Servlet 很多的细节。比如写 Servlet 的时候,要获取参数需要不断的 getParameter,在SpringMVC 方法定义对应的 JavaBean,只要属性名与参数名一致,SpringMVC 就可以帮我们实现「将参数封装到 JavaB...
ViewResolver 源码分析
HandlerMapping 源码分析
HandlerAdapter 源码分析
DispatchServlet 源码分析
Optimizing SELECT Statements(优化 SELECT 语句)
MySQL 官方文档 8.8.2 EXPLAIN Output Format
题目
题目
题目
原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。 举例:一个 ip 地址为 10.0.3.193
计算1000w以内有多少个质数。
题目
题目
SpringMVC 其实就是对 Servlet 的封装,屏蔽掉 Servlet 很多的细节。比如写 Servlet 的时候,要获取参数需要不断的 getParameter,在SpringMVC 方法定义对应的 JavaBean,只要属性名与参数名一致,SpringMVC 就可以帮我们实现「将参数封装到 JavaB...
ViewResolver 源码分析
HandlerMapping 源码分析
HandlerAdapter 源码分析
DispatchServlet 源码分析
题目
题目链接
给定一棵树的前序遍历 preorder 与中序遍历 inorder。请构造二叉树并返回其根节点。
题目链接
给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回排序后链表的头 。
题目链接
题目链接
题目链接
题目链接
Optimizing SELECT Statements(优化 SELECT 语句)
MySQL 官方文档 8.8.2 EXPLAIN Output Format
[TOC]
前面写过 Spring IOC 的源码分析,很多读者希望可以出一个 Spring AOP 的源码分析,不过 Spring AOP 的源码还是比较多的,写出来不免篇幅会大些。
题目链接
给定单个链表的头 head ,使用 插入排序 对链表进行排序,并返回排序后链表的头 。
题目链接
题目链接
题目链接
Spring 最重要的概念是 IOC 和 AOP,本篇文章其实就是要带领大家来分析下 Spring 的 IOC 容器。既然大家平时都要用到 Spring,怎么可以不好好了解 Spring 呢?阅读本文并不能让你成为 Spring 专家,不过一定有助于大家理解 Spring 的很多概念,帮助大家排查应用中和 Spr...