- 博客(27)
- 收藏
- 关注
原创 LeetCode 347.前k个高频元素【c++】
目录一、题目二、解题思路三、代码四、补充知识1.unordered_map 与 map2.priority_queue一、题目给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:1 <= nums.length <= 10的5次方 k 的取值
2022-01-20 17:28:09
932
原创 LeetCode 字符串类题目【c++】
目录409. 最长回文串一、题目二、解题思路三、代码647. 回文子串一、题目二、解题思路三、代码409. 最长回文串一、题目给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例1:输入: “abccccdd”输出: 7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。二、解题思路首先要清楚:1.回文字符串最中间
2021-11-16 00:10:48
203
原创 LeetCode 字符串类题目【c++】
目录242. 有效的字母异位词一、题目二、解题思路三、代码9.回文数一、题目二、代码242. 有效的字母异位词一、题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例1:输入: s = “anagram”, t = “nagaram”输出: true示例2:输入: s = “rat”, t = “car”输出: fals提示:1 <= s.le
2021-11-14 23:56:02
559
原创 LeetCode 73.矩阵置零【c++】
一、题目给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。进阶:一个直观的解决方案是使用 O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额外空间,但这仍然不是最好的解决方案。你能想出一个仅使用常量空间的解决方案吗?二、解题思路方法一:先标记出矩阵中为0的元素所在的行和列,之后再对矩阵进行遍历,使标记的行和列的元素均为0。方法二:先将原矩阵进行复制,对新矩阵进行遍历,得到0
2021-11-03 23:56:19
868
原创 LeetCode 350.两个数组的交集【c++】
一、目录给定两个数组,编写一个函数来计算它们的交集。二、解题思路先将两个数组 nums1、nums2进行排序。定义一个向量num存储两数组的交集。然后按序比较两个数组中对应的元素,找到两个数组的交集(即相等的元素),放入num中。三、代码class Solution {public: vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { sort
2021-11-02 21:07:10
267
原创 LeetCode 53.最大子序和【Java】
目录一、题目二、解题思路三、Java代码一、题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。二、解题思路先对数组进行遍历,令最大子序和为sum。若sum>0,则sum对结果增大有作用,此时让sum=sum+1;若sum<=0,则sum对结果增大无作用三、Java代码class Solution { public int maxSubArray(int[] nums) { int res=nums[
2021-10-29 22:54:49
110
原创 LeetCode 405.数字转换为十六进制数【Java】
一、题目给定一个整数,编写一个算法将这个数转换为十六进制数。对于负整数,我们通常使用 补码运算 方法。注意:十六进制中所有字母(a-f)都必须是小写。十六进制字符串中不能包含多余的前导零。如果要转化的数为0,那么以单个字符’0’来表示;对于其他情况,十六进制字符串中的第一个字符将不会是0字符。给定的数确保在32位有符号整数范围内。不能使用任何由库提供的将数字直接转换或格式化为十六进制的方法。示例一:示例二:二、解题思路三、Java代码class Solution { p
2021-10-28 23:38:40
393
原创 LeetCode 496.下一个更大元素|【Java】
目录一、题目二、解题思路三、Java代码一、题目给你两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。请你找出 nums1 中每个元素在 nums2 中的下一个比其大的值。nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输出 -1 。示例一:示例二:二、解题思路当时写的时候想的比较简单。大体思路就是通过for循环,将num2中与num1中对应相等的数及其下标找出
2021-10-27 12:40:29
163
原创 LeetCode 240.搜索二维矩阵||【Java】
一、题目二、解题思路1.直接查找利用for 循环嵌套的形式直接遍历整个矩阵来寻找目标值。2.二分查找矩阵中的每一行元素都以单调递增的形式有序排列。因此可对每行进行二分查找,寻找目标值。(二分查找的知识点在这篇文章里提及)三、Java代码1.直接查找class Solution { public boolean searchMatrix(int[][] matrix, int target) { for(int[] row : matrix){
2021-10-25 22:06:39
76
原创 LeetCode 504.七进制数 【Java】
目录一、题目二、解题思路三、Java代码一、题目二、解题思路整数num包含正数、负数和0。1.首先考虑0,若num=0,则直接以字符串形式返回“0”。2.若整数为负数,则先把它变成正数,再进行下一步操作。3.将数进行7进制转换,7进制为除7取余的过程。4.将所得余数逆序输出,变得最终结果。(要注意,若所给数为负数,此时还得将结果变为负数形式)三、Java代码class Solution { public String convertToBase7(int num) {
2021-10-24 21:06:53
2043
原创 LeetCode 492.构造矩形【Java】
目录一、题目二、解题思路1.被称为暴力解法2.对数开平方求解三、Java代码一、题目作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:1. 你设计的矩形页面必须等于给定的目标面积。2. 宽度 W 不应大于长度 L,换言之,要求 L >= W 。3. 长度 L 和宽度 W 之间的差距应当尽可能小。你需要按顺序输出你设计的页面的长度 L 和宽度 W。示例:输入:
2021-10-23 22:44:44
164
原创 Leetode 189.旋转数组【Java】
目录1.题目示例1:示例2:提示:2.解题思路3.Java代码1.题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例2:输入:nums = [-1,-100,3,99], k = 2输出:[
2021-10-21 14:46:28
284
原创 LeetCode 704.二分查找【Java解题】
目录提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1.题目2.解题思路3.Java代码4. 二分法回顾1.题目给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。2.解题思路3.Java代码class Solution { public int search(int[] nums, int target) {
2021-10-10 13:24:34
139
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人