lc
青海蓝田
这个作者很懒,什么都没留下…
展开
-
lc 492. 构造矩形
//双指针class Solution {public: vector<int> constructRectangle(int area) { vector<int> vec(2); int sub_val = area; int L = area, W = 1; while (W<=L) { if (W * L == area && L - W <= sub_val) //L-W=chaz.原创 2021-10-23 17:02:08 · 83 阅读 · 0 评论 -
lc.299 求众数2
class Solution {public: vector<int> majorityElement(vector<int>& nums) { int count=nums.size()/3; int length=nums.size(); unordered_map<int,int> mp; for(int i=0;i<length;++i) { .原创 2021-10-22 18:35:29 · 372 阅读 · 0 评论 -
lc.136 只出现一次的数字
//官方使用异或运算来处理class Solution{public: int singleNumber(vector<int>&nums) { for(int i=1;i<nums.size();++i) { nums[0]^=nums[i]; //异或的性质 } return nums[0]; }};//---------------.原创 2021-10-21 23:28:59 · 57 阅读 · 0 评论 -
lc453. 最小操作次数使数组元素相等
//只说了所有元素相等,所以只看相对差距,选出 n-1 个增加 1,和剩下那个减少 1没有区别(官方思路)//时间复杂度 O(n),空间复杂度 O(1)class Solution {public: int minMoves(vector<int>& nums) { if(nums.size()==0||nums.size()==1) //0个或1个元素直接返回 { return 0; .原创 2021-10-20 23:03:34 · 109 阅读 · 0 评论 -
lc 187. 重复的DNA序列
class Solution{ public: vector<string> findRepeatedDnaSequences(string s) { vector<string> vec; if (s.size() <= 10) { return vec; } map<string, int> ma; //没要求有序的,也可以..原创 2021-10-09 17:36:45 · 74 阅读 · 0 评论 -
lc 面试题 17.14. 最小K个数
class Solution{public: vector<int> smallestK(vector<int>& arr, int k){ vector<int> vect; priority_queue<int,vector<int>, greater<int> > a; //放入优先队列,并升序排序 for (auto n : arr) { a.push(n); } .原创 2021-10-07 13:45:09 · 59 阅读 · 0 评论 -
lc 20.有效的括号
class Solution{public: bool isValid(string s) { //s 中的第一个字符如果是右括号,可以直接 return 了,因为前面没有字符,不存在匹配 if (s.size() % 2 == 1 || s.size() == 0 || s[0] == '}' || s[0] == ')' || s[0] == ']') { return false; } stack<char>stack1; for (int .原创 2021-10-05 23:24:51 · 71 阅读 · 0 评论 -
lc 26.删除有序数组中的重复项【双指针】
class Solution {public: int removeDuplicates(vector<int>& nums) { int i = 0,j = 1; for (i,j; j <nums.size(); ++j) //时间复杂度 O(n),空间复杂度 O(1) { if (nums[i] == nums[j]) { continue; } else { nums[++i] = nums[j];.原创 2021-10-05 15:30:19 · 106 阅读 · 0 评论 -
剑指 09.两个栈实现一个队列
class CQueue {public: stack<int> st1,st2; //st1 做插入队列,st2 做删除队列 CQueue() { while(!st1.empty()) st1.pop(); //初始化,把栈中元素清空 while(!st2.empty()) st2.pop(); } void appendTail(int value) { st1.push(value); ...原创 2021-10-05 11:44:03 · 58 阅读 · 0 评论 -
lc.1894
1894. 找到需要补充粉笔的学生编号难度中等65收藏分享切换为英文接收动态反馈一个班级里有n个学生,编号为0到n - 1。每个学生会依次回答问题,编号为0的学生先回答,然后是编号为1的学生,以此类推,直到编号为n - 1的学生,然后老师会重复这个过程,重新从编号为0的学生开始回答问题。给你一个长度为n且下标从0开始的整数数组chalk和一个整数k。一开始粉笔盒里总共有k支粉笔。当编号为i的学生回答问题时,他会消耗chalk[i]支粉笔。如...原创 2021-09-11 00:14:40 · 74 阅读 · 0 评论 -
lc.704
给定一个n个元素有序的(升序)整型数组nums 和一个目标值target ,写一个函数搜索nums中的 target,如果目标值存在返回下标,否则返回 -1。示例 1:输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1...原创 2021-09-06 23:48:34 · 86 阅读 · 0 评论