自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 [算法合集]力扣算法入门思路整理

[算法合集]力扣算法入门思路整理

2022-07-10 22:08:27 268

原创 【15天速刷算法】DAY7

广度优先遍历

2022-06-28 11:12:02 149

原创 【15天速刷算法】DAY6

3. 无重复字符的最长子串给定一个字符串 ,请你找出其中不含有重复字符的 最长子串 的长度。解法:滑动窗口+hashset,左指针移动则删除,右指针移动则添加567. 字符串的排列给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。...

2022-06-27 17:13:41 95

原创 【15天速刷算法】DAY4-5

344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/reverse-string著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。557. 反转字符串中的单词 III给定一个字符串 ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单

2022-06-25 19:44:55 79

原创 [动态规划专项]DAY3

198. 打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/house-robber著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。213

2022-06-21 18:48:48 75

原创 [15天速刷算法]DAY3-双指针

283. 移动零 给定一个数组 ,编写一个函数将所有 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。167. 两数之和 II - 输入有序数组...

2022-06-21 16:59:19 51

原创 [15天速刷算法]DAY2-双指针

在数学和计算机科学之中,算法是一个被定义好的、计算机可施行之指示的有限步骤或次序,常用于计算、数据处理和自动推理。作为一个有效方法,算法被用于计算函数,它包含了一系列定义清晰的指令,并可于有限的时间及空间内清楚的表述出来。...

2022-06-20 17:58:43 50

原创 [动态规划专项]Day2

动态规划常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。

2022-06-20 17:06:36 66

原创 [动态规划专项]

动态规划常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素解法。

2022-06-19 23:23:41 42

原创 [15天速刷算法]DAY1-二分查找

[15天速刷算法]DAY1-二分查找

2022-06-19 22:24:22 66

原创 剑指 Offer II 012. 左右两边子数组的和相等

class Solution {public: int pivotIndex(vector<int>& nums) {//前缀和,转化为vi[i]*2+(vi[i+1]-vi[i])==vi[n]的问题 int n = nums.size(); vector<int> vi(n+1,0); for(int i=1;i<n+1;++i){ vi[i] = vi[i-1] + nums[i.

2022-04-16 17:23:42 47

原创 剑指 Offer II 011. 0 和 1 个数相同的子数组

class Solution {public://前缀和加哈希表,将0替换为-1并求前缀和,将前缀和中初次出现的数字位置保存下来,然后最后出现减去初次出现位置即为最长 int findMaxLength(vector<int>& nums) { int n = nums.size(); int lng = 0; vector<int> vi(n+1,0); for(int i=1;i<n+1;.

2022-04-16 17:17:45 40

原创 剑指 Offer II 010. 和为 k 的子数组

class Solution {public: int subarraySum(vector<int>& nums, int k) { int n = nums.size(); int c = 0; vector<int> vi(n+1,0); for(int i=1;i<n+1;++i){ vi[i] = vi[i-1]+nums[i-1]; } .

2022-04-16 17:08:04 37

原创 剑指 Offer II 009. 乘积小于 K 的子数组

class Solution {public: int numSubarrayProductLessThanK(vector<int>& nums, int k) { int count = 0; int n = nums.size(); //vector<int> muls(n+1,1); //for(int i=1;i<n+1;++i){ // muls[i] = mu.

2022-04-16 16:43:23 45

原创 剑指 Offer II 008. 和大于等于 target 的最短子数组

class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int n = nums.size(); int sht = INT_MAX; vector<int> vi; int sum = 0; vi.push_back(sum); for(int i=0;i<n;i++.

2022-04-16 16:15:12 32

原创 剑指 Offer II 007. 数组中和为 0 的三个数

剑指 Offer II 007. 数组中和为 0 的三个数class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { //1.先对nums进行排序 int n = nums.size(); sort(nums.begin(),nums.end()); vector<vector<int&

2022-04-16 15:35:34 33

原创 剑指 Offer II 006. 排序数组中两个数字之和

给定一个已按照 升序排列 的整数数组 numbers ,请你从数组中找出两个数满足相加之和等于目标数 target 。函数应该以长度为 2 的整数数组的形式返回这两个数的下标值。numbers 的下标 从 0 开始计数 ,所以答案数组应当满足 0 <= answer[0] < answer[1] < numbers.length 。假设数组中存在且只存在一对符合条件的数字,同时一个数字不能使用两次。示例 1:输入:numbers = [1,2,4,6,10], tar.

2022-03-01 22:13:10 39

原创 剑指 Offer II 005. 单词长度的最大乘积

定一个字符串数组 words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。示例 1:输入: words = ["abcw","baz","foo","bar","fxyz","abcdef"]输出: 16解释: 这两个单词为 "abcw", "fxyz"。它们不包含相同字符,且长度的乘积最大。示例 2:输入: words = ["a","ab","

2022-03-01 21:57:41 56

原创 剑指 Offer II 004. 只出现一次的数字

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。示例 1:输入:nums = [2,2,3,2]输出:3示例 2:输入:nums = [0,1,0,1,0,1,100]输出:100提示: 1 <= nums.length <= 3 * 104 -231 <= nums[i] <= 231 - 1 nums 中,除某个元素仅出现 一次 外,其余每个元素...

2022-03-01 21:17:00 66

原创 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数

给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --> 101思路:对于每个数进行位运算,对于每一位

2022-02-27 17:20:30 108

原创 剑指 Offer II 002. 二进制加法

给定两个 01 字符串 a 和 b ,请计算它们的和,并以二进制字符串的形式输出。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "10"输出: "101"示例 2:输入: a = "1010", b = "1011"输出: "10101"提示: 每个字符串仅由字符 '0' 或 '1' 组成。 1 <= a.length, b.length <= 10^4 字符串如果不是 "0" ,就都不含...

2022-02-27 16:39:08 139

原创 剑指 Offer II 001. 整数除法

给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 '*'、除号 '/' 以及求余符号 '%' 。注意: 整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1思路有两种:①减法替代除法int af = a>0?1:...

2022-02-27 11:48:30 283

原创 【力扣TOP】3.无重复字符的最长子串

题目描述给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: s = "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: s = "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 ...

2022-02-23 11:58:09 72

原创 【力扣TOP】2.两数相加

问题描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9

2022-02-23 11:03:14 144

原创 【力扣TOP】1. 两数之和

题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4],

2022-02-21 11:36:56 53

原创 【力扣TOP】717. 1比特与2比特字符

题目有两种特殊字符:第一种字符可以用一个比特0来表示 第二种字符可以用两个比特(10或11)来表示、给定一个以 0 结尾的二进制数组 bits ,如果最后一个字符必须是一位字符,则返回 true 。示例 1:输入: bits = [1, 0, 0]输出: true解释: 唯一的编码方式是一个两比特字符和一个一比特字符。所以最后一个字符是一比特字符。示例 2:输入: bits = [1, 1, 1, 0]输出: false解释: 唯一的编码方式是两比特字符和...

2022-02-20 11:24:05 81

原创 【剑指offer】(一)数据结构_链表_01

JZ6 从尾到头打印链表描述输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1输入:{1,2,3}返回值:[3,2,1]示例2输入:{67,0,24,58}返回值:[58,24,0,67]我的解答:/*** struct ListNode {* int val;*...

2022-02-18 12:21:24 322

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除