![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode 其他类型题目
不属于前几个大类的题目
努利!奋斗!
这个作者很懒,什么都没留下…
展开
-
leetcode 937. Reorder Data in Log Files
leetcode原创 2022-07-26 10:07:04 · 202 阅读 · 0 评论 -
leetcode 2104. Sum of Subarray Ranges
leetcode原创 2022-07-25 10:30:16 · 149 阅读 · 0 评论 -
907. Sum of Subarray Minimums
leetcode原创 2022-07-25 10:21:57 · 272 阅读 · 0 评论 -
Leetcode 208. Implement Trie (Prefix Tree)
leetcode原创 2022-07-17 03:47:09 · 112 阅读 · 0 评论 -
leetcode 939. Minimum Area Rectangle
leetcode原创 2022-07-14 09:00:46 · 161 阅读 · 0 评论 -
Leetcode 833. Find And Replace in String
leetcode原创 2022-07-12 10:04:39 · 113 阅读 · 0 评论 -
leetcode 2013. Detect Squares
leetcode原创 2022-07-12 08:44:30 · 155 阅读 · 0 评论 -
leetcode 703. Kth Largest Element in a Stream
leetcode原创 2022-07-10 12:00:09 · 179 阅读 · 0 评论 -
Leetcode 2135. Count Words Obtained After Adding a Letter
leetcode原创 2022-07-08 11:38:37 · 130 阅读 · 0 评论 -
leetcode 127. Word Ladder
leetcode原创 2022-07-05 04:30:39 · 149 阅读 · 0 评论 -
Leetcode 2034. Stock Price Fluctuation
leetcode原创 2022-07-01 08:18:44 · 161 阅读 · 0 评论 -
Leetcode 2303. Calculate Amount Paid in Taxes
leetcode原创 2022-06-23 12:40:14 · 107 阅读 · 0 评论 -
Leetcode 2273. Find Resultant Array After Removing Anagrams
题目解法:class Solution {public: void get_ana(vector<int>& ana,string word){ for(auto& c : word){ ana[c-'a']++; } } vector<string> removeAnagrams(vector<string>& words) { vector&原创 2022-05-23 09:14:17 · 192 阅读 · 0 评论 -
Leetcode 2280. Minimum Lines to Represent a Line Chart
题目解法这道题并不难,但是题目讲的不是特别清楚。题目的隐含条件是每个点只能与相邻的节点连接,如果是这样就比较好做了,需要注意的一点是,给的数据并不会按照日期来进行排序,需要先进行排序另外一点是,利用减法会比较好做,n个点最多n+1条线,如果有某个点在之前的线上,那么总数减掉一条,在这边只需判断相邻三个点的共线性就可以了但是有两个注意点:1. 这道题有一个比较关键的点是,计算两个斜率是不是相等,如果直接dy1/dx1 == dy2/dx2,很有可能会出现精度问题,所以利用交叉相乘判断是最好的选原创 2022-05-23 09:04:17 · 93 阅读 · 0 评论 -
Leetcode 2278. Percentage of Letter in String
题目解法:class Solution {public: int percentageLetter(string s, char letter) { int cnt = 0; for(auto& c : s){ if(c == letter) cnt++; } return (cnt*100) / s.size(); }};原创 2022-05-23 08:28:48 · 67 阅读 · 0 评论 -
Leetcode 2278. Percentage of Letter in String
题目解法:class Solution {public: int percentageLetter(string s, char letter) { int cnt = 0; for(auto& c : s){ if(c == letter) cnt++; } return (cnt*100) / s.size(); }};原创 2022-05-23 08:27:56 · 90 阅读 · 0 评论 -
Leetcode 2278. Percentage of Letter in String
题目解法:class Solution {public: int percentageLetter(string s, char letter) { int cnt = 0; for(auto& c : s){ if(c == letter) cnt++; } return (cnt*100) / s.size(); }};原创 2022-05-23 08:26:09 · 53 阅读 · 0 评论 -
Leetcode 43. Multiply Strings
题目解法1:老老实实的做class Solution {public: vector<int> plusOne(vector<int>& digits) { for(int i=digits.size()-1;i>=0;i--){ if(digits[i] == 9){ digits[i] = 0; }else{ digits原创 2022-05-13 12:53:03 · 229 阅读 · 0 评论 -
Leetcode 442. Find All Duplicates in an Array
题目解法:题目的关键在于nums of length n where all the integers of nums are in the range [1, n],所以可以用nums本身来作为hashmap。那就要通过改变nums来达到这个目的,但是在改变的同时又能获取原本的nums信息,那就只有通过改变某个数字的符号具体做法是:把每个数字作为索引,将这个数字代表的索引位置的数字改变符号,这样下次再碰到这个数字就能知道是否出现过,而且被改变符号的数字可以通过绝对值得到原本的数字class So原创 2022-05-11 00:36:20 · 147 阅读 · 0 评论 -
Leetcode 806. Number of Lines To Write String
题目解法:class Solution {public: vector<int> numberOfLines(vector<int>& widths, string s) { int lines = 1; int curr_line = 0; for(auto& c : s){ curr_line += widths[c-'a']; if(curr_line原创 2022-05-09 02:28:51 · 267 阅读 · 0 评论 -
Leetcode 2248. Intersection of Multiple Arrays
题目解法:利用mapclass Solution {public: vector<int> intersection(vector<vector<int>>& nums) { if(nums.size() == 0){ return {}; } unordered_map<int,int> memo; vector<int> res;原创 2022-05-08 08:22:43 · 941 阅读 · 0 评论 -
Leetcode 2249. Count Lattice Points Inside a Circle
题目解法:解法1: 暴力遍历+set,对每个圆暴力便利所有可能点,利用一些边界条件缩短搜索次数解法2:利用对称性,只需便利四分之一个圆的部分相关的点,其他的点可以通过计算得出,参考:https://leetcode.com/problems/count-lattice-points-inside-a-circle/discuss/1976978/Python-Explanation-with-pictures-set.解法3: 因为整个网格只有100*100,所以可以遍历所有点并判断是否在某一个原创 2022-05-08 07:53:28 · 151 阅读 · 0 评论 -
Leetcode 2261. K Divisible Elements Subarrays
题目解析这道题目有几个关键点:如何形成所有的subarray如何保证subarray distinct如何keep track这个divisible elements number错误解法一开始在做这道题目的时候陷入了一个误区,觉得对于每一个subarray需要分别数出里面有多少个divisible的element,自然而然地想到了prefix sum of divisible cnt。而且对于如何形成subarray没有清晰的认知,觉得是需要遍历所有可能的长度从而得到所有subarra原创 2022-05-04 12:15:21 · 271 阅读 · 0 评论 -
Leetcode 2260. Minimum Consecutive Cards to Pick Up
题目解法1利用hashmap保存每个数字和对应的index,遍历hashmap得到答案class Solution {public: int minimumCardPickup(vector<int>& cards) { unordered_map<int,vector<int>> memo; for(int i=0;i<cards.size();i++){ memo[cards[i]原创 2022-05-04 11:27:25 · 215 阅读 · 0 评论 -
Leetcode 2259. Remove Digit From Number to Maximize Result
题目解法:暴力搜索note:c++中数字组成的字符串可以直接比较大小class Solution {public: string removeDigit(string number, char digit) { string max_res = ""; for(int i=0;i<number.size();i++){ char d = number[i]; if(d != digit) continue原创 2022-05-04 11:18:15 · 2066 阅读 · 0 评论 -
Leetcode 2225. Find Players With Zero or One Losses
题目解法1:无序hashmap+排序maintain一个dict,记录所有loser及其lose掉的match数量。遍历所有player,如果没在loser dict出现则是答案的第一维·,如果loser dict中的value是1,则是答案的第二维,最后将答案排序class Solution: def findWinners(self, matches: List[List[int]]) -> List[List[int]]: # win_dict = collect原创 2022-04-24 13:30:23 · 1072 阅读 · 0 评论 -
Leetcode 2224. Minimum Number of Operations to Convert Time
题目解法:greedy把时间转化为分钟计算出time difference从60开始从大到小依次计算每个increase可以最多取多少步class Solution: def convertTime(self, current: str, correct: str) -> int: curr_h,curr_m = int(current.split(':')[0]),int(current.split(':')[1]) unix_curr = c原创 2022-04-23 09:16:58 · 115 阅读 · 0 评论 -
Leetcode 2245. Maximum Trailing Zeros in a Cornered Path
题目解法:Weekly Contest 289的题目,自己感觉有点变态,当时没做出来这道题需要解决一下几个问题:如何数trailing zero如何枚举这些符合条件形状的所有可能性第一个问题最优解是,所有的0都只可能是2*5得到,所以可以把每个位置数字分解,记录每个数字以2为因子和以5为因子的个数。可以通过一个形状能组成多少个2,5的pair来得到多少个0。由于要累计这些个数,所以使用prefixsum技巧枚举这些形状可能性最好操作的方案是把每个位置作为形状的turning point,原创 2022-04-18 03:58:10 · 199 阅读 · 0 评论 -
Leetcode 677. Map Sum Pairs
题目解法:使用前缀树或者字典树每个节点代表一个字母,利用map来储存相邻字符之间的关系这个题还需要后续深入理解struct TrieNode{ TrieNode* child[26] = {}; int sum = 0;};class MapSum {public: TrieNode trieRoot; unordered_map<string,int> map_; void insert(string key, int v原创 2022-04-15 13:17:04 · 345 阅读 · 0 评论 -
Leetcode 2233. Maximum Product After K Increments
题目解法1首先理解一下题意,要求的是对数组中某些数字增加1后的最大乘积,一共可增加k次。对于每一次增加1,整个乘积的变化是除了被增加这个数字以外的数字总和。那么最后乘积最大也就是k次增加的最多。从贪心的思想来看,保证每次增加都是最大即可,而每次增加要最大,也就是被增加的数字是所有数字中最小的即可。自然而然地想到用min heap来保证能够快速找到最小的数字note:这道题目有个点很有意思,如果这个mod放在最后进行,那么会TLE,只有放在while循环内部才能过,理论上时间复杂度是一模一样的cl原创 2022-04-11 12:52:59 · 917 阅读 · 0 评论 -
Leetcode 2232. Minimize Result by Adding Parentheses to Expression
题目解法暴力解,遍历左括号和右括号可能位置的所有组合,返回能找到的最小组合class Solution: def minimizeResult(self, expression: str) -> str: # print(len(expression[:0])) left_num,right_num = expression.split('+')[0],expression.split('+')[1] min_res = 21474836原创 2022-04-11 12:10:37 · 193 阅读 · 0 评论 -
Leetcode 2231. Largest Number After Digit Swaps by Parity
题目解法将数据中的奇数和偶数分类,并且记录每个位置的奇偶性,按照奇偶性从大到小组成新的数字时间复杂度O(nlogn),来源于排序。空间复杂度O(n)class Solution: def largestInteger(self, num: int) -> int: if not num: return num even_digits = [] odd_digits = [] deno = 10原创 2022-04-11 11:59:18 · 350 阅读 · 0 评论 -
Leetcode 739. Daily Temperatures (cpp)
题目解法:这道题关键在于两点:对于某个降序的子序列,碰到的第一个升序的元素将会决定前面部分降序子序列位置的答案利用stack来维持这种降序详细解释见注释class Solution {public: vector<int> dailyTemperatures(vector<int>& T) { // basic idea: iterate through the array, for every element, we go bac原创 2021-01-21 02:42:30 · 113 阅读 · 0 评论 -
Leetcode 560. Subarray Sum Equals K (cpp)
题目解法1:TLEclass Solution {public: int subarraySum(vector<int>& nums, int k) { int curr_sum; int count = 0; for(int i=0;i<nums.size();i++){ curr_sum = 0; for(int j=i;j<nums.size();j++){原创 2021-01-20 07:17:01 · 117 阅读 · 0 评论 -
Leetcode 348. Design Tic-Tac-Toe (python+cpp)
题目解法1:暴力class TicTacToe(object): def __init__(self, n): """ Initialize your data structure here. :type n: int """ self.board = [['']*n for _ in range(n)] def move(self, row, col, player): """原创 2021-01-13 08:41:33 · 310 阅读 · 0 评论 -
Leetcode 50. Pow(x, n) (cpp)
题目解法:recursion版本:class Solution {public: double myPow(double x, int n) { long long N = n; if(N < 0){ x = 1 / x; N = -N; } return fastPow(x,N); } double fastPow(double x, int n){原创 2021-01-13 06:55:47 · 79 阅读 · 0 评论 -
Leetcode Floyd‘s Tortoise and Hare (Cycle Detection) 集合
Leetcode 142. Linked List Cycle II(python+cpp)Leetcode 287. Find the Duplicate NumberLeetcode 202. Happy Number (cpp)原创 2021-01-11 06:23:23 · 181 阅读 · 1 评论 -
Leetcode 283. Move Zeroes (cpp)
题目解法1:将非0元素全部按顺序放到数组前面,后面的位置填充0class Solution {public: void moveZeroes(vector<int>& nums) { int ind = 0; for(int i=0;i<nums.size();i++){ if(nums[i] != 0){ nums[ind] = nums[i];原创 2021-01-10 04:51:27 · 187 阅读 · 0 评论 -
Leetcode 13. Roman to Integer (cpp)
题目解法:写个while循环,单独处理特殊情况即可class Solution {public: int romanToInt(string s) { unordered_map<char,int> mapping{ {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100},原创 2021-01-10 03:21:45 · 108 阅读 · 0 评论 -
Leetcode 202. Happy Number (cpp)
题目解法1:hashtable建立一个hashtable,检查是否会在循环过程中出现已经出现的数字class Solution {public: bool isHappy(int n) { unordered_map<int ,int> seen; while(n != 1 && seen.find(n) == seen.end()){ seen[n] = 1; n = getNex原创 2021-01-10 03:07:25 · 161 阅读 · 1 评论