力扣刷题
无
╰漠╯
码农一枚
展开
-
剑指Offer56:数组中数字出现的次数
一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:2 <= nums.length <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com原创 2020-10-17 00:13:17 · 257 阅读 · 0 评论 -
剑指Offer 56:数组中数字出现的次数 II
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1限制:1 <= nums.length <= 100001 <= nums[i] < 2^31class Solution { public int singleNumber(int[] nums) { if原创 2020-10-17 21:21:16 · 194 阅读 · 0 评论 -
【算法】平衡二叉树
题目描述给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,...原创 2020-04-21 15:46:42 · 166 阅读 · 0 评论 -
【算法】将有序数组转换为二叉搜索树
题目描述将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10...原创 2020-04-20 22:56:59 · 117 阅读 · 0 评论 -
【算法】二叉树的层次遍历II
题目描述给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]解题简单的BFS遍历树,只不过不是...原创 2020-04-17 11:12:53 · 154 阅读 · 0 评论 -
【算法】对称二叉树
题目描述给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [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进阶:你可以运用递归和迭代两种方法解决这个问题...原创 2020-04-14 10:43:56 · 142 阅读 · 0 评论 -
【算法】相同的树
题目描述给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 ...原创 2020-04-13 14:46:59 · 110 阅读 · 0 评论 -
【算法】删除排序链表中的重复元素
题目描述给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3解题双指针法,一个指针用于迭代遍历,一个指针指向每个数的第一个结点,当两个指向的结点值不同时就将中间的结点删除,最后再将末尾重复数删除。...原创 2020-04-12 13:56:29 · 163 阅读 · 0 评论 -
【算法】爬楼梯
题目描述假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1、1 阶 + 1 阶2、2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1、1 阶 + 1 阶 + 1 阶2、1 阶 + 2 ...原创 2020-04-11 21:54:52 · 147 阅读 · 0 评论 -
【算法】最大子序和
题目描述给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。解题方法一:动态规划法class Solution {...原创 2020-04-10 11:11:46 · 120 阅读 · 0 评论 -
【算法】最后一个单词的长度
题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5解题从后向前遍历即可,先去除尾部空格,再计数,遇到空格说明找到一个单词。...原创 2020-04-10 10:01:07 · 180 阅读 · 0 评论 -
【算法】外观数列
题目描述「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 12...原创 2020-04-07 10:44:13 · 158 阅读 · 0 评论 -
【算法】实现strStr()
题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needl...原创 2020-04-06 10:33:29 · 132 阅读 · 0 评论 -
【算法】合并两个有序链表
题目描述将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解题维护一个头结点为结果链的头结点,每次从链1、链2中取链首结点的较小值,加入结果链。最后将不为null的链直接加入结果链,头结点不保存值所以返回...原创 2020-04-05 15:56:30 · 93 阅读 · 0 评论 -
【算法】有效的括号
题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示...原创 2020-04-04 11:54:00 · 99 阅读 · 0 评论 -
【算法】最长公共前缀
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。解题使用分治法求解,找出左侧部分的最大...原创 2020-04-04 11:08:28 · 133 阅读 · 0 评论 -
罗马数字转整数
题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并...原创 2020-04-02 14:49:16 · 85 阅读 · 0 评论 -
【算法】回文数
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回...原创 2020-04-01 12:27:00 · 138 阅读 · 0 评论 -
【算法】整数反转
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。题解cl...原创 2020-03-30 21:05:59 · 101 阅读 · 0 评论 -
【算法】两数之和
学习了算法后,一直没有使用,感觉都忘了。开始在力扣中刷题,尽量每天抽出一点时间写一道题吧,先从简单题开始练起。题目描述:给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], t...原创 2020-03-29 21:26:35 · 151 阅读 · 0 评论