
leetcode
对方正在debug
gzh: 对方正在debug
展开
-
有效数字(模拟)
题目这题足够恶心,情况没说清楚。真就面向后台数据编程233class Solution {public: /* * f1 能否以0开头 默认不可以 * f2 能否有前缀空格 默认可以 * f3 能否有后缀空格 默认可以 * f4 是否需要数字(至少存在1个) 默认不需要 */ //判断是否为正整数 bool JudgeNum3(string s,bool f1 = false原创 2020-09-15 11:26:44 · 167 阅读 · 0 评论 -
区间和的个数(multiset/线段树/归并)
原题给定一个整数数组 nums,返回区间和在 [lower, upper] 之间的个数,包含 lower 和 upper。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。参考multisetclass Solution {public: int countRangeSum(vector<int>&...原创 2020-04-19 11:18:19 · 331 阅读 · 0 评论 -
比特位计数(dp)
题目看的官方代码dp+最高有效位public class Solution { public int[] countBits(int num) { int[] ans = new int[num + 1]; int i = 0, b = 1; // [0, b) is calculated while (b <= ...原创 2020-04-13 19:12:04 · 183 阅读 · 0 评论 -
只出现一次的数字 III(位运算/s&(-s))
题目给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。所有数异或,得到两个相异的数aaa和bbb的异或值a⨁ba\bigoplus ba⨁b,且s=a⨁b!=0s=a\bigoplus b!=0s=a⨁b!=0,令k=s⋀−sk=s\bigwedge-sk=s⋀−s,那么kkk表示sss的最后一位1,该位上的1表示aaa和bbb在该...原创 2020-04-12 14:39:21 · 188 阅读 · 0 评论 -
个位相加(思维)
题目给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。对于一非负数,其构成为∑10i∗ai=∑(10i−1)∗ai+∑ai\sum{10^i*a_i} = \sum{(10^i-1)*a_i}+\sum{a_i}∑10i∗ai=∑(10i−1)∗ai+∑ai,前面一部分都是9的倍数,我们可以对9取模将其去掉,为了防止答案本身是9的情况,我们需要先-1,再取模。cla...原创 2020-04-12 13:19:54 · 1133 阅读 · 0 评论 -
求众数II(思维/摩尔投票法)
题目此题和多数元素一样的思想。多了个判断的过程,需要循环2遍。后边发现原来这类题有个算法名称的。class Solution {public: vector<int> majorityElement(vector<int>& nums) { int n = nums.size(); if(n == 1) { ...原创 2020-04-12 10:30:41 · 193 阅读 · 0 评论 -
完全二叉树的节点个数(二分套二分)
题目参考二分最后一层,每次chek用二分对应节点有没存在。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL...原创 2020-04-11 21:55:06 · 155 阅读 · 0 评论 -
存在重复元素 III(桶排)
题目给定一个整数数组,判断数组中是否有两个不同的索引 iii 和 jjj,使得 nums[i]nums [i]nums[i] 和 nums[j]nums[j]nums[j] 的差的绝对值最大为ttt,并且iii和 jjj之间的差的绝对值最大为 ķķķ。自己只想到了set+lower_boundset+lower\_boundset+lower_bound,参考了官方的桶排解法,时间复杂度O(N...原创 2020-04-11 19:42:46 · 174 阅读 · 0 评论 -
最短回文串(KMP)
题目给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。思路:关键在于找串s的最长回文前缀串,可以构造其反串rev,长串s2=s+#+revs2 = s+\#+revs2=s+#+rev,求s2的最后一个位置的nxt值,即对应串s的最长回文前缀串的长度。class Solution {public: //KMP寻找最长前缀回...原创 2020-04-11 14:38:31 · 459 阅读 · 0 评论 -
丑数||(指针)
寻找第n个丑数(n<=1690n<=1690n<=1690)class Solution {public: int p[2010]; int nthUglyNumber(int n) { p[1] = 1; int h2 = 1,h3 = 1,h5 = 1; for(int i = 2;i <= n;++i...原创 2020-04-11 10:21:18 · 104 阅读 · 0 评论 -
颠倒二进制位(位运算)
题目:颠倒给定的 32 位无符号整数的二进制位。代码class Solution {public: uint32_t reverseBits(uint32_t n) { n = (n >> 16) | (n << 16); n = ((n & 0xff00ff00) >> 8) | ((n & 0x0...原创 2020-04-06 22:42:06 · 217 阅读 · 0 评论 -
旋转数组
题目方法一:模拟class Solution {public: void rotate(vector<int>& nums, int k) { int n = nums.size(); k = k%n; for(int pos = 0,count = 0;count < n;++pos) { ...原创 2020-04-06 21:32:42 · 175 阅读 · 0 评论 -
可怜的小猪(思维/进制数)
题目假设有 n 只水桶,猪饮水中毒后会在 m 分钟内死亡,你需要多少猪(x)就能在 p 分钟内找出 “有毒” 水桶?这 n 只水桶里有且仅有一只有毒的桶。思路:当p<m时显然无解,就不考虑了。问题关键在于观察p分钟内每只小猪有多少种状态,有k种状态,则对应k进制数。那么问题转化为n用k进制数表示需要多少位的问题。举个例子,假设n=1000,m=2,p=5,n=1000,m=2,p=5...原创 2020-04-01 17:40:03 · 173 阅读 · 0 评论 -
基本计算器 II(栈)
题目:https://leetcode-cn.com/problems/basic-calculator-ii/实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式仅包含非负整数,+, - ,*,/ 四种运算符和空格 。 整数除法仅保留整数部分。class Solution {public: int calculate(string s) { cha...原创 2020-03-18 15:32:37 · 192 阅读 · 1 评论 -
基本计算器(栈)
题目:https://leetcode-cn.com/problems/basic-calculator/参考:https://leetcode-cn.com/problems/basic-calculator/solution/lioneycli-yong-zhan-jian-dan-qiu-jie-by-lioney/实现一个基本的计算器来计算一个简单的字符串表达式的值。字符串表达式可以...原创 2020-03-18 10:40:45 · 288 阅读 · 0 评论 -
天际线问题(扫描线)
题目:https://leetcode-cn.com/problems/the-skyline-problem/代码:https://leetcode-cn.com/problems/the-skyline-problem/solution/218tian-ji-xian-wen-ti-sao-miao-xian-fa-by-ivan_al/class Solution {public: ...原创 2020-03-18 09:16:58 · 287 阅读 · 0 评论 -
数字范围按位与(位运算/思维)
题目:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range/给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。思路:一种直观解法是将(n,m)的不同地位部分都变为0,可以逐位右移,再左移回来即可,这个做法挺快的。而还有...原创 2020-03-17 11:57:02 · 566 阅读 · 0 评论 -
数字1的个数(思维/数学)
题目:https://leetcode-cn.com/problems/number-of-digit-one/代码:https://leetcode-cn.com/problems/number-of-digit-one/solution/shu-zi-1-de-ge-shu-by-leetcode/给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。思路:计算10进...原创 2020-03-14 22:49:51 · 642 阅读 · 0 评论 -
地下城游戏(dp)
题目:https://leetcode-cn.com/problems/dungeon-game/题意:给定一个矩阵,从(0,0)走到(n-1,m-1),每次只能向下和向右走,要求在过程中血量必须保持正值。求最低初始血量。题解:这是最小值最大化问题。正向不好递推,考虑逆向。令dp[i][j]dp[i][j]dp[i][j]表示走到该点时需要的最小血量。如果其相邻点都为负数,代表往后走需要额外消...原创 2020-03-07 10:33:20 · 209 阅读 · 0 评论 -
二叉搜索树迭代器(栈)
题目:https://leetcode-cn.com/problems/binary-search-tree-iterator//** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * Tr...原创 2020-03-06 13:45:46 · 133 阅读 · 0 评论 -
阶乘后的零
题目:https://leetcode-cn.com/problems/factorial-trailing-zeroes/本质就是求n!中5的个数。求法思路:先求含1个5的数的个数n/5n/5n/5,再求含2个5的数的个数n/52n/5^2n/52…class Solution {public: int trailingZeroes(int n) { int re...原创 2020-03-06 12:34:44 · 111 阅读 · 0 评论 -
分数到小数(模拟/to_string)
题目:https://leetcode-cn.com/problems/fraction-to-recurring-decimal/代码:https://leetcode-cn.com/problems/fraction-to-recurring-decimal/solution/cmo-ni-ti-jian-dan-yi-dong-by-xiaoneng/class Solution {p...原创 2020-03-06 11:46:37 · 185 阅读 · 0 评论 -
比较版本号(istringstream)
题目:https://leetcode-cn.com/problems/compare-version-numbers/代码:https://leetcode-cn.com/problems/compare-version-numbers/solution/istringstreamde-shi-yong-by-victoriacck/class Solution {public: ...原创 2020-03-06 11:22:51 · 111 阅读 · 0 评论 -
最大间距(基数排序/桶排/分块)
题目:https://leetcode-cn.com/problems/maximum-gap/参考:https://leetcode-cn.com/problems/maximum-gap/solution/zui-da-jian-ju-by-leetcode/被教育了orz题意:给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。要求时间...原创 2020-03-06 11:01:15 · 162 阅读 · 0 评论 -
寻找峰值(二分)
题目:https://leetcode-cn.com/problems/find-peak-element/class Solution {public: int findPeakElement(vector<int>& nums) { /* *给定一个输入数组 nums,其中 nums[i] ≠ nums[i+1], ...原创 2020-03-05 23:43:24 · 216 阅读 · 0 评论 -
相交链表(思维)
题目:参考:https://leetcode-cn.com/problems/intersection-of-two-linked-lists/solution/tu-jie-xiang-jiao-lian-biao-by-user7208t//** * Definition for singly-linked list. * struct ListNode { * int va...原创 2020-03-05 13:11:43 · 144 阅读 · 0 评论 -
寻找旋转排序数组中的最小值I/II
题目:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/class Solution {public: int findMin(vector<int>& nums) { /*假设按照升序排序的数组在预先未知的某个点 *上进行了旋转请找出其中最小的...原创 2020-03-05 12:30:40 · 114 阅读 · 0 评论 -
乘积最大子序列(dp)
题目:https://leetcode-cn.com/problems/maximum-product-subarray/class Solution {public: int maxProduct(vector<int>& nums) { /* *给定一个整数数组 nums ,找出一个序列中乘积 *最大的连续子序列,...原创 2020-03-05 11:28:43 · 126 阅读 · 0 评论 -
逆波兰表达式求值(栈)
题目:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/class Solution {public: int evalRPN(vector<string>& tokens) { //根据逆波兰表示法,求表达式的值。 stack<int> s...原创 2020-03-03 23:23:54 · 185 阅读 · 0 评论 -
排序链表(归并/非递归实现)
题目:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: int getl...原创 2020-03-03 21:47:17 · 290 阅读 · 0 评论 -
LRU缓存机制(哈希链表)
题目:https://leetcode-cn.com/problems/lru-cache/参考:https://leetcode-cn.com/problems/lru-cache/solution/lru-ce-lue-xiang-jie-he-shi-xian-by-labuladong/运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: ...原创 2020-03-03 16:22:59 · 182 阅读 · 0 评论 -
二叉树的后序遍历(栈实现)
题目:https://leetcode-cn.com/problems/binary-tree-postorder-traversal//** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2020-03-03 14:40:52 · 634 阅读 · 0 评论 -
二叉树的前序遍历(栈实现)
题目:https://leetcode-cn.com/problems/binary-tree-preorder-traversal//** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * ...原创 2020-03-03 14:33:06 · 869 阅读 · 0 评论 -
重排链表(快慢指针/指针反序)
题目:参考:https://leetcode-cn.com/problems/reorder-list/solution/xiang-xi-tong-su-de-si-lu-fen-xi-duo-jie-fa-by-34/给定一个单链表 L:L0→L1→…→Ln−1→Ln,L:L_0→L_1→…→L_{n-1}→L_n ,L:L0→L1→…→Ln−1→Ln,将其重新排列后变为: L0...原创 2020-03-03 14:28:34 · 195 阅读 · 0 评论 -
环形链表II(快慢指针)
题目:参考:https://leetcode-cn.com/problems/linked-list-cycle-ii/solution/linked-list-cycle-ii-kuai-man-zhi-zhen-shuang-zhi-/原创 2020-03-03 10:57:23 · 110 阅读 · 0 评论 -
单词拆分I/II(字典树/dp)
单词拆分(字典树)题目:https://leetcode-cn.com/problems/word-break/代码:https://leetcode-cn.com/problems/word-break-ii/solution/dong-tai-gui-hua-qian-zhui-shu-by-scut_dell/class Solution {public: clas...原创 2020-03-02 23:31:30 · 306 阅读 · 0 评论 -
只出现一次的数字II(位运算/卡诺图)
题目:https://leetcode-cn.com/problems/single-number-ii/参考:https://leetcode-cn.com/problems/single-number-ii/solution/single-number-ii-mo-ni-san-jin-zhi-fa-by-jin407891/参考2:https://leetcode-cn.com/prob...原创 2020-03-01 15:59:22 · 258 阅读 · 0 评论 -
通过投票对团队排名
题目:https://leetcode-cn.com/problems/rank-teams-by-votes/代码:https://leetcode-cn.com/problems/rank-teams-by-votes/solution/c-li-yong-greaterpai-xu-by-wu-bin-cong/代码很巧妙orz,用了greater<vector >()进行排...原创 2020-03-01 15:35:02 · 375 阅读 · 0 评论 -
使网格图至少有一条有效路径的最小代价(队列/双端队列)
题目:https://leetcode-cn.com/problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid/更简洁的做法是用双端队列,当时没相到class Solution {public: /* *队列:把同层次的优先遍历 */ struct node{ int val...原创 2020-03-01 13:57:53 · 175 阅读 · 0 评论 -
二叉树中的列表(循环查找)
题目:https://leetcode-cn.com/contest/weekly-contest-178/problems/linked-list-in-binary-tree/题意:给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 True ,否则...原创 2020-03-01 12:21:12 · 307 阅读 · 0 评论