随笔分类 -  leetcode

摘要:原题链接 单调栈,首位各插入一个0,避免讨论栈为空的情况 class Solution { public: int largestRectangleArea(vector<int>& heights) { int ans=0; stack<int>st; //首位各自插入0,避免了讨论栈是否为空 h 阅读全文
posted @ 2021-04-24 11:52 Tsukinousag1 阅读(50) 评论(0) 推荐(0)
摘要:原题链接 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 class Solution { public: int trap(vector<int>& height) { int ans=0; int n=height.size(); if(n<3 阅读全文
posted @ 2021-04-23 16:53 Tsukinousag1 阅读(81) 评论(0) 推荐(0)
摘要:跳跃游戏Ⅰ ###原题链接 class Solution { public: bool canJump(vector<int>& nums) { //每个位置都计算自己所能到达的最远距离,同时要判断自己是否可以到达 //能到达得情况下,更新所能到达得新的最远距离 //最后判断是否大于等于nums的长 阅读全文
posted @ 2021-04-20 20:16 Tsukinousag1 阅读(59) 评论(0) 推荐(0)
摘要:原题链接 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗? 方法一:置换 class Solution { public: int firstMissingPositive(vector<int>& 阅读全文
posted @ 2021-04-20 11:39 Tsukinousag1 阅读(45) 评论(0) 推荐(0)
摘要:1.组合总数Ⅰ 原题链接 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。题目数据保证答案符合 32 位整数范围。 注意点: 1.candidates 中的数字可以无限制重复被选取 2.解集不能包含重 阅读全文
posted @ 2021-04-19 18:10 Tsukinousag1 阅读(104) 评论(0) 推荐(0)
摘要:原题链接 模拟操作系统中进程的短作业优先调度算法 1.对于没有等待的情况,先来先服务 2.对于等待中的进程,采用运行时间短的优先 3.对于运行时间的进程,采用下标短的优先 对于进程服务,采用堆优化,时间复杂度 O(nlogn) //定义堆的排序方法 struct cmp{ bool operator 阅读全文
posted @ 2021-04-18 13:37 Tsukinousag1 阅读(87) 评论(0) 推荐(0)
摘要:两道题都是双指针做法,不要使用额外的数组空间,须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。 1. 删除有序数组中的重复项 原题链接 class Solution { public: int removeDuplicates(vector<int>& nums) { if(nu 阅读全文
posted @ 2021-04-17 17:26 Tsukinousag1 阅读(116) 评论(0) 推荐(0)
摘要:1.两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 可以按任意顺序返回答案。 做法:hash表,O(n) class Sol 阅读全文
posted @ 2021-04-16 17:00 Tsukinousag1 阅读(380) 评论(0) 推荐(0)
摘要:题意:给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请找出并返回这两个正序数组的 中位数 设计 O(log (m+n)) 的算法 原题链接 前天面试的时候导师问我一个看似非常简单的问题,给你一串数组,求第k小的数,直接脱口说快选O(n),然后导师问我你能不能设计 阅读全文
posted @ 2021-04-16 11:16 Tsukinousag1 阅读(89) 评论(0) 推荐(0)