题型归纳
文章平均质量分 52
算法
无名小飛猿
这个作者很懒,什么都没留下…
展开
-
回文系列之回文子串和最长回文子串
5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例 1: 输入:s = “babad” 输出:“bab” 解释:“aba” 同样是符合题意的答案。 示例 2: 输入:s = “cbbd” 输出:“bb” 示例 3: 输入:s = “a” 输出:“a” 示例 4: 输入:s = “ac” 输出:“a” 穷举每一个点为中心点,从中心点向两边扩展寻找回文串 如果回文串是奇数由最中心的一个节点向两边扩展 如果回文串是偶数,由最中心的两个节点向两边扩展 迭代比较找最长回文串 class原创 2021-04-26 21:00:22 · 180 阅读 · 0 评论 -
二叉树和字符串互转系列
606. 根据二叉树创建字符串 你需要采用前序遍历的方式,将一个二叉树转换成一个由括号和整数组成的字符串。 空节点则用一对空括号 “()” 表示。而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对。 示例 1: 输入: 二叉树: [1,2,3,4] 1 / 2 3 / 4 输出: “1(2(4))(3)” 解释: 原本将是“1(2(4)())(3())”, 在你省略所有不必要的空括号对之后, 它将是“1(2(4))(3)”。 示例 2: 输入: 二叉树: [1,2,3,n原创 2021-04-25 22:13:17 · 671 阅读 · 0 评论 -
反转字符串系列
344. 反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:[“h”,“e”,“l”,“l”,“o”] 输出:[“o”,“l”,“l”,“e”,“h”] 示例 2: 输入:[“H”,“a”,“n”,“n”,“a”,“h”] 输出:[“h”,“a”,“n”,“n”,“a”,原创 2021-04-23 23:00:26 · 70 阅读 · 0 评论 -
验证回文串
125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: “A man, a plan, a canal: Panama” 输出: true 示例 2: 输入: “race a car” 输出: false 题干:只考虑字母和数字,忽略字母的大小写 空字符串定义为有效的回文串。 class Solution { public boolean isPalindrome(Strin原创 2021-04-23 22:03:54 · 75 阅读 · 0 评论 -
递增子序列
最长连续递增子序列 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], …, nums[r - 1], nums[r]] 就是连续递增子序列。 示例 1: 输入:nums = [1,3,5,4,7] 输出:3 解释:最长连续递增序列是 [1,3,5]原创 2021-04-22 21:51:23 · 268 阅读 · 0 评论 -
奇偶排序
按奇偶排序数组 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。 class Solution { public int[] sortArrayByParity(int[] A) { if(A.length==0){ return原创 2021-04-22 21:27:20 · 154 阅读 · 0 评论 -
存在重复元素
题目-217. 存在重复元素给定一个整数数组,判断是否存在重复元素。 如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例 3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true 哈希表 class Solution { public boolean containsDuplicate(int[] n原创 2021-04-20 21:47:36 · 84 阅读 · 0 评论 -
杨辉三角
题目-118. 杨辉三角 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] class Solution { public List<List<Integer>> generate(int numRows) { List<List<Integer&g原创 2021-04-20 20:24:22 · 57 阅读 · 0 评论 -
树的子树问题
剑指26. 树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 给定的树 B: 返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。 示例 1: 输入:A = [1,2,3], B = [3,1] 输出:false 示例 2: 输入:A = [3,4,5,1,2], B = [4,1] 输出:true 思路 isSubStructure(A,B)函数: A空原创 2021-04-11 23:00:04 · 358 阅读 · 0 评论 -
树的公共祖先
题目-235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q原创 2021-04-09 22:35:56 · 585 阅读 · 0 评论 -
32 - I. 从上到下打印二叉树&&32 - II. 从上到下打印二叉树 II&&32 - III. 从上到下打印二叉树 III
从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果: 思路 层序遍历 栈的大小就是每一层节点(上一层取完就是下一层全部入栈之时) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode r原创 2021-03-22 21:53:02 · 81 阅读 · 0 评论 -
N叉树的前序/后序/层序遍历
589. N 叉树的前序遍历 递归 根节点加入list 递归遍历孩子节点 /* // Definition for a Node. class Node { public int val; public List<Node> children; public Node() {} public Node(int _val) { val = _val; } public Node(int _val, List<Nod原创 2021-04-05 21:45:01 · 141 阅读 · 0 评论 -
24. 反转链表&&92. 反转链表 II
题目 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 思路 链表为null直接返回null pre当前节点的前驱节点 cur当前节点 循环cur当前节点为空退出: 临时节点保存cur当前节点的后继节点 cur,next=pre修改当前节点指向pre前驱节点 pre=cur后移 cur后移 返回新链表pre前驱节原创 2021-03-21 19:30:48 · 86 阅读 · 0 评论 -
1. 两数之和&&57. 和为s的两个数字&&57 - II. 和为s的连续正数序列
题目-1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target原创 2021-04-04 13:09:27 · 105 阅读 · 0 评论