leetcode初级算法
文章平均质量分 52
zxcvbnmmnbvcxz9
这些玩意儿还挺有意思!
展开
-
Leetcode day6 初级算法-数组-加一-多情况讨论
题目给定一个由** 整数** 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。实例输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。输入:digits = [9,9,9]输出:[1,0,0,0]解释:输入数组表示数字 1000思路末位数加一共三种情况,无进位: 即++后digits[i] != 10末位加一返回该v原创 2021-05-14 10:38:31 · 83 阅读 · 0 评论 -
Leetcode day6 初级算法-数组-两个数组的交集 II- map/排序+双指针
题目给定两个数组,编写一个函数来计算它们的交集。方法一:排序+双指针思路:先将两个数组进行排序两个指针分别指向数组下标,从左边第一个元素开始1)所指的元素相同,放进vector里,注意vector的插入元素是 push_back(), set的才是insert,注意:此时两个指针同时都要往后移动2)所指的元素不相同,小的往后移,大的不动(它倒要看看后面还有没有我的交集)直至 其中有一个数组遍历完了,即满足a<nums1.size()&&b<nums2.size原创 2021-05-13 16:05:24 · 95 阅读 · 0 评论 -
Leetcode day5 初级算法-数组-只出现一次的数字-位运算异或+set
题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。要求线性复杂度 不使用额外空间方法一:集合set思路set 集合中元素的互异性把数组中的元素放进set,如果相同,也就是说集合中已经有啦,这个元素出现了两次,那就删掉集合中的这个元素否则就插入这个新的元素到set中也就是说,第一次碰到insert,第二次碰到erase会发现只有那个只出现了一个元素还在set中,把它return注意s.find(num)==s.end() // 没原创 2021-05-13 14:42:29 · 88 阅读 · 0 评论 -
Leetcode day4 初级算法-数组-存在重复元素—哈希表
题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。第一种方法:排序后再比较初始代码:暴力求解class Solution {public: bool containsDuplicate(vector<int>& num) { int length = num.size() ; if (length == 0) return false;原创 2021-05-11 09:13:52 · 187 阅读 · 0 评论 -
Leetcode day3 初级算法-数组-旋转数组——反转/辅助数组
(昨天没打卡一题,故今日补之)题目给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。进阶:尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。你可以使用空间复杂度为 O(1) 的 原地 算法解决这个问题吗?代码class Solution {public: void rotate(vector<int>& array,int k) {//向右移动 k 个位置 int length = array.size();原创 2021-05-10 14:54:22 · 159 阅读 · 0 评论 -
Leetcode day2 初级算法-数组-买卖股票的最佳时机——贪心算法
题目给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。代码class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size()<2) return 0;原创 2021-05-10 13:59:09 · 146 阅读 · 0 评论 -
Leetcode day1 初级算法-数组-删除排序数组中的重复项——双指针
题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后 **数组的新长度 **。**不要使用额外的数组空间 **,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。代码:class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.size() == 0) return 0; in原创 2021-05-08 09:12:51 · 108 阅读 · 0 评论