leetcode
yiyantangad
这个作者很懒,什么都没留下…
展开
-
461. 汉明距离
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。上面的箭头指出了对应二进制位不同的位置。输入:x = 1, y = 4。输入:x = 3, y = 1。原创 2023-05-06 15:01:58 · 369 阅读 · 0 评论 -
283.移动零
力扣283.移动零原创 2023-05-06 10:01:20 · 788 阅读 · 0 评论 -
找到所有数组中消失的数字
找到所有数组中消失的数字原创 2023-05-06 14:15:15 · 682 阅读 · 0 评论 -
二叉树的最近公共祖先
二叉树的最近公共祖先原创 2022-11-04 12:08:17 · 99 阅读 · 0 评论 -
二叉搜索树的最近公共祖先
二叉搜索树的最近公共祖先原创 2022-09-23 10:39:28 · 162 阅读 · 1 评论 -
单词长度的最大乘积
单词长度的最大乘积原创 2022-09-22 11:34:16 · 181 阅读 · 0 评论 -
删除排序链表中的重复元素
删除排序链表中的重复元素原创 2022-09-16 15:21:04 · 171 阅读 · 0 评论 -
二进制求和
二进制求和原创 2022-09-16 15:08:09 · 280 阅读 · 0 评论 -
NO.66 加一
加一原创 2022-09-16 14:55:26 · 98 阅读 · 0 评论 -
最后一个单词的长度
最后一个单词的长度原创 2022-09-16 14:42:15 · 85 阅读 · 0 评论 -
最近请求次数
最近请求次数原创 2022-09-16 14:29:45 · 95 阅读 · 0 评论 -
搜索插入位置
搜索插入位置原创 2022-09-16 14:17:45 · 60 阅读 · 0 评论 -
滑动窗口的平均值
滑动窗口的平均值原创 2022-09-16 14:11:10 · 1149 阅读 · 0 评论 -
无重复字符的最长子串
无重复字符的最长子串原创 2022-09-16 10:22:42 · 108 阅读 · 0 评论 -
力扣两数相加
两数相加原创 2022-09-15 16:33:23 · 83 阅读 · 0 评论 -
二叉树的三种遍历(递归和迭代)
二叉树遍历原创 2022-09-15 16:20:22 · 728 阅读 · 0 评论 -
力扣爬楼梯
爬楼梯原创 2022-09-14 14:30:17 · 86 阅读 · 0 评论 -
排序数组中只出现一次的数字
力扣原创 2022-06-12 02:30:30 · 197 阅读 · 1 评论 -
山峰数组的顶部
力扣原创 2022-06-12 01:56:24 · 103 阅读 · 0 评论 -
查找插入位置
力扣原创 2022-06-12 01:32:45 · 135 阅读 · 0 评论 -
实现 strStr()
力扣,实现strStr()原创 2022-06-10 07:39:02 · 110 阅读 · 0 评论 -
移除数组元素
链接:https://leetcode.cn/problems/remove-element/题目:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。思路:第一种,双指针,用count存需要留存的数字的索引,i用来遍历数组。第二种,双指针优化,一个指向数组开头left,一个指向数组结尾.原创 2022-05-31 16:21:17 · 132 阅读 · 0 评论 -
删除有序数组中的重复项
链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/题目:给你一个 升序排列 的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。元素的相对顺序应该保持一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k .原创 2022-05-31 15:59:39 · 60 阅读 · 0 评论 -
合并两个有序链表
链接:https://leetcode.cn/problems/merge-two-sorted-lists/题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]思路:第一种,首先对有空链表的情况进行讨论。然后建立一个结果链表head,对l1和l2进行遍历和一一比较,数值小的进入结果链表,并且向后移动一位。当其中一个链表出现为空时,就.原创 2022-05-31 15:25:24 · 55 阅读 · 0 评论 -
打印从1到最大的n位数
链接:https://leetcode.cn/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof/题目:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]思路:求最大值,max等于10^n-1;用for循环存入数组,最后返回。代码:class Solution {publi.原创 2022-05-20 16:28:56 · 77 阅读 · 0 评论 -
外星语言是否排序
链接:https://leetcode.cn/problems/lwyVBB/题目:某种外星语也使用英文小写字母,但可能顺序 order 不同。字母表的顺序(order)是一些小写字母的排列。给定一组用外星语书写的单词 words,以及其字母表的顺序 order,只有当给定的单词在这种外星语中按字典序排列时,返回 true;否则,返回 false。示例:输入:words = [“hello”,“leetcode”], order = “hlabcdefgijkmnopqrstuvwxyz”.原创 2022-05-20 16:11:20 · 103 阅读 · 0 评论 -
有效的变位词
链接:https://leetcode.cn/problems/dKk3P7/题目:给定两个字符串 s 和 t ,编写一个函数来判断它们是不是一组变位词(字母异位词)。注意:若 s 和 t 中每个字符出现的次数都相同且字符顺序不完全相同,则称 s 和 t 互为变位词(字母异位词)。示例:输入: s = “anagram”, t = “nagaram”输出: true思路:第一种,排序。字符串 s 和 t 如果长度不相等或者完全相等,那么不是变位词。变位词等同于两个字符串不相等但.原创 2022-05-20 15:30:52 · 221 阅读 · 0 评论 -
最少移动次数使数组元素相等II
链接:https://leetcode.cn/problems/minimum-moves-to-equal-array-elements-ii/题目:给你一个长度为 n 的整数数组 nums ,返回使所有数组元素相等需要的最少移动数。在一步操作中,你可以使数组中的一个元素加 1 或者减 1 。示例:输入:nums = [1,2,3]输出:2解释:只需要两步操作(每步操作指南使一个元素加 1 或减 1):[1,2,3] => [2,2,3] => [2,2,2].原创 2022-05-19 19:38:00 · 83 阅读 · 0 评论 -
判断回文链表
链接https://leetcode.cn/problems/aMhZSa/题目给定一个链表的 头节点 head ,请判断其是否为回文链表。如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。示例:思路遍历链表,将链表值存入数组中。再使用双指针来进行判断。代码:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * .原创 2022-05-19 19:15:32 · 78 阅读 · 0 评论 -
反转单链表
链接:https://leetcode.cn/problems/UHnkqh/题目:给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。示例:思路:头插法。新创建一个空链表,把原链表的值每个都从头部插入新的链表,可以实现链表反转。特别注意,要记录head的next,不然丢失。代码/** * Definition for singly-linked list. * struct ListNode { * int val; * L..原创 2022-05-19 19:06:06 · 122 阅读 · 0 评论 -
两个链表的第一个重合节点
文章目录链接题目思路代码链接https://leetcode.cn/problems/3u1WK4/题目给定两个单链表的头节点 headA 和 headB ,请找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构 。示例:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5],原创 2022-05-19 18:09:47 · 273 阅读 · 0 评论 -
最多删除一个字符得到回文
链接:https://leetcode.cn/problems/RQku0D/题目:给定一个非空字符串 s,请判断如果 最多 从字符串中删除一个字符能否得到一个回文字符串。示例:输入: s = "aba"输出: true输入: s = "abca"输出: true解释: 可以删除 "c" 字符 或者 "b" 字符思路:第一种,不封装函数。双指针,low指向低位,high指向高位,如果low和high所指的字母相等,则low++;high--;。如果不相等,尝试删除当前的lo.原创 2022-05-18 23:02:03 · 616 阅读 · 0 评论 -
有效的回文
链接https://leetcode.cn/problems/XltzEq/题目给定一个字符串 s ,验证 s 是否是 回文串 ,只考虑字母和数字字符,可以忽略字母的大小写。本题中,将空字符串定义为有效的 回文串 。示例:输入: s = "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串输入:s = "0P"输出:false解释:"op"不是回文串思路:字符串中可能会含有数字、大写.原创 2022-05-18 22:22:09 · 174 阅读 · 0 评论 -
左右两边子数组的和相等
链接https://leetcode.cn/problems/tvdfij/题目给你一个整数数组 nums ,请计算数组的 中心下标 。数组中心下标是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。示例:输入:nums = [1,7,3,6,5,6]输出:.原创 2022-05-18 21:14:47 · 146 阅读 · 0 评论 -
前K个高频元素
链接:https://leetcode.cn/problems/top-k-frequent-elements/题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]输入: nums = [1], k = 1输出: [1]思路:要使值和次数进行对应,想到的是使用map来进行记录,key值存数组元素,value值记录数字出现次数.原创 2022-05-13 15:21:15 · 59 阅读 · 0 评论 -
排序数组中两个数字之和
链接:https://leetcode.cn/problems/kLl5u1/题目:给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0 <= answer[0] < answer[1] < numbers.length 。假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使.原创 2022-05-13 15:12:30 · 178 阅读 · 0 评论 -
最长公共前缀
链接:https://leetcode.cn/problems/longest-common-prefix/题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例:输入:strs = ["flower","flow","flight"]输出:"fl"输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。思路:对字符串数组中的每个单词,同时进行判断,一旦不相同则返回公共前缀。代码:.原创 2022-05-13 14:54:18 · 55 阅读 · 0 评论 -
只出现一次的数字
链接:https://leetcode.cn/problems/WGki4K/题目:给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例:输入:nums = [2,2,3,2]输出:3代码:class Solution {public: int singleNumber(vector<int>& nums) { if(nums.size()==1) .原创 2022-05-13 14:38:47 · 50 阅读 · 0 评论 -
前n个数字二进制中1的个数
链接:https://leetcode.cn/problems/w3tCBm/题目:给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例:输入: n = 2输出: [0,1,1]解释: 0 --> 01 --> 12 --> 10思路:第一种:最暴力最朴素的做法,遍历每个数,对每个数进行二进制转换;第二种:Brian Kernighan算法,核心关键是x=x&(x-1)可以让x二进制中最后一.原创 2022-05-13 14:26:37 · 204 阅读 · 0 评论 -
二进制加法
链接:https://leetcode.cn/problems/JFETK5/题目:给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。示例:输入: a = "11", b = "10"输出: "101"代码:核心部分是相加和进位的处理class Solution {public: string addBinary(string a, string b) { string an.原创 2022-05-13 13:38:44 · 121 阅读 · 0 评论