LeetCode
JAVA+Leetcode
失去斗志的菜鸟
本人CSDN主页现可通过joycez.blog.csdn.net访问( •̀ ω •́ )✧
展开
-
SpringBoot+VUE前后端分离项目学习笔记 - 【18 整合Echarts--折线图与饼图】
整合Echarts到Home.vue,前端import echarts 并且导入折线图以及饼图, 后端编写相应数据接口原创 2023-01-09 17:32:15 · 885 阅读 · 0 评论 -
693. 交替位二进制数
题目:693. 交替位二进制数题解:方法一:模拟二进制求解过程,得到每一位的数字,判断是否相等class Solution {public: bool hasAlternatingBits(int n) { int prev = -1; while(n!=0) { int cur = n%2; if(cur == prev) { return false;原创 2022-03-28 10:41:08 · 316 阅读 · 0 评论 -
Leetcode-字典树-440. 字典序的第K小数字
题目440. 字典序的第K小数字:题解:class Solution {public: //prefix是前缀,n是上界 int getcount(long prefix, long n) { long count = 0; long cur = prefix; long next = prefix+1;//下一个前缀 //当前的前缀当然不能大于上界 while(cur&l...原创 2021-07-16 17:01:46 · 167 阅读 · 0 评论 -
Leetcode-BFS-103. 二叉树的锯齿形层序遍历
题目103. 二叉树的锯齿形层序遍历:题解:BFS变形/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x),原创 2021-07-14 13:53:53 · 195 阅读 · 0 评论 -
Leetcode-链表-148. 排序链表
题目148. 排序链表:题解:快排(超时):/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x,..原创 2021-07-12 16:28:34 · 68 阅读 · 0 评论 -
Leetcode-二叉树-剑指 Offer 68 - II. 二叉树的最近公共祖先
题目:题解:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: Tree...原创 2021-07-12 14:52:40 · 120 阅读 · 0 评论 -
Leetcode-前缀和/滑窗-930. 和相同的二元子数组
题目930. 和相同的二元子数组:题解:前缀和+哈希表:class Solution {public: int numSubarraysWithSum(vector<int>& nums, int goal) { unordered_map<int,int> mp; int n = nums.size(); int res = 0, sum = 0; mp[sum] = 1;原创 2021-07-08 17:59:00 · 223 阅读 · 0 评论 -
Leetcode-从1开始的进制-168. Excel表列名称
题目:168. Excel表列名称题解:如果把题目看做正常 0~25 的 26 进制,即A-Z应该对应0-25但是现在题目对应的是1-26,因此每次取位置的时候把数字-1即可具体举例:那么52按照正常进制,A-Z应该对应0-25应该是 (26^1) * 2 + (26^0) * 0 = 2 + 0 = CA但是A-Z现在对应1-26,不存在0,所以输出了B@按照现在的规则,52输出的是 AZ 即 0 + 2552 -1 = 51, 51/26 =1 ……25 取...原创 2021-07-02 13:08:28 · 105 阅读 · 0 评论 -
Leetcode-排序+贪心-1833. 雪糕的最大数量
题目1833. 雪糕的最大数量:题解:比simple更simple的mediumclass Solution {public: int maxIceCream(vector<int>& costs, int coins) { sort(costs.begin(),costs.end()); int cnt = 0; while(cnt < costs.size() && coins &g原创 2021-07-02 12:17:16 · 131 阅读 · 0 评论 -
Leetcode-BFS/DFS/DP-LCP 07. 传递信息
题目LCP 07. 传递信息:题解:DFSclass Solution {public: vector<vector<int>> edges; int res; int _k; int _n; void dfs(int src, int step) { if(step == _k) { if(src == _n-1){res++;}原创 2021-07-01 12:55:04 · 170 阅读 · 1 评论 -
Leetcode-BFS-909. 蛇梯棋
题目909. 蛇梯棋:题解:class Solution {public: int snakesAndLadders(vector<vector<int>>& board) { int n = board.size(); vector<int> num(n*n+1); if (board[0][0] != -1) return -1; bool right = tr原创 2021-06-28 20:26:32 · 155 阅读 · 0 评论 -
Leetcode-双向BFS-752. 打开转盘锁
题目:752. 打开转盘锁题解:单向BFS:class Solution {public: int openLock(vector<string>& deadends, string target) { unordered_set<string> dead; for (auto& s:deadends) dead.insert(s); //unordered_set<string&g原创 2021-06-25 18:12:01 · 200 阅读 · 2 评论 -
Leetcode-哈希表-149. 直线上最多的点数
题目149. 直线上最多的点数:题解:class Solution {public: int gcd (int x, int y) { return y ? gcd(y,x%y) : x; } int maxPoints(vector<vector<int>>& points) { int n = points.size(); if(n<=2){return n;}原创 2021-06-24 18:00:25 · 137 阅读 · 2 评论 -
Leetcode-下一个排列/回溯全排列-剑指 Offer 38. 字符串的排列/31. 下一个排列
题目:题解:1,回溯看这里,之前对全排列有总结class Solution {public: vector<string> res; string path; int n; vector<bool> used; void backtrack(string s,int i) { if(i == n) { res.push_back(path);原创 2021-06-22 11:37:52 · 138 阅读 · 0 评论 -
Leetcode-确定有限状态自动机/正则表达-65. 有效数字
题目486. 预测赢家:题解:代码:原创 2021-06-17 17:56:34 · 142 阅读 · 0 评论 -
Leetcode-递归/动态规划-486. 预测赢家/877. 石子游戏
题目486. 预测赢家:题解:dai原创 2021-06-16 20:08:58 · 139 阅读 · 0 评论 -
Leetcode-二分-852. 山脉数组的峰顶索引
题目852. 山脉数组的峰顶索引:原创 2021-06-15 13:33:07 · 101 阅读 · 0 评论 -
Leetcode-回溯/动态规划-494. 目标和
题目494. 目标和:题解:huis原创 2021-06-07 14:50:01 · 150 阅读 · 0 评论 -
Leetcode-链表-203. 移除链表元素
题目203. 移除链表元素:题解:原创 2021-06-05 17:10:15 · 132 阅读 · 0 评论 -
Leetcode-链表-160. 相交链表
题目160. 相交链表:题解:哈希表:双指针:原创 2021-06-04 12:44:14 · 158 阅读 · 0 评论 -
Leetcode-前缀和+哈希表-525. 连续数组
题目525. 连续数组:题解:原创 2021-06-03 15:49:55 · 120 阅读 · 0 评论 -
Leetcode-前缀和+同余哈希表-523. 连续的子数组和
题目523. 连续的子数组和:题解:前缀和:原创 2021-06-02 15:09:28 · 165 阅读 · 1 评论 -
Leetcode-前缀和-1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?
题目1744. 你能在你最喜欢的那天吃到你最喜欢的糖果吗?:题解:原创 2021-06-01 14:11:57 · 133 阅读 · 0 评论 -
Leetcode-位运算-231. 2 的幂
题目231. 2 的幂:题解:原创 2021-05-30 12:52:23 · 121 阅读 · 0 评论 -
Leetcode-位运算-477. 汉明距离总和
题目477. 汉明距离总和:题解:原创 2021-05-28 15:33:38 · 120 阅读 · 0 评论 -
Leetcode-位运算/异或-461. 汉明距离
题目461. 汉明距离:题解:方法一:用bitset(用法详解)class Solution {public: int hammingDistance(int x, int y) { bitset<32> res (x^y); return res.count(); }};用内置函数__builtin_popcountclass Solution {public: int hammingDistanc原创 2021-05-27 15:50:28 · 148 阅读 · 0 评论 -
Leetcode-栈-1190. 反转每对括号间的子串
题目1190. 反转每对括号间的子串:题解:栈class Solution {public: string reverseParentheses(string s) { stack<string> stk; string str; for (auto &ch : s) { if (ch == '(') { stk.push(str);原创 2021-05-26 16:56:26 · 106 阅读 · 0 评论 -
Leetcode-异或/动态规划-1787. 使所有区间的异或结果为零
题目1787. 使所有区间的异或结果为零:题解:或者解析(from 这里)对于nums = [1,2,4,2,2,5,2,2,6], k = 3,这个为例子首先是一维转二维,len(nums)//k行,k列:从其它题解可知,需要满足每列元素相同,每行异或为0和也就是说每次修改元素时,需要将这一列上的所有元素都修改为同一个值具体参照官方题解设一个长度为2^10的一维数组F,设这个长度是为了遍历[0,2^10],其中F[var]表示:当前列的元素...原创 2021-05-25 21:17:17 · 203 阅读 · 0 评论 -
Leetcode-动态规划-664. 奇怪的打印机
题目664. 奇怪的打印机:题解:由以上的思路我们知道本题可以使用自低向上的动态规划解法。我们首先要定义对于dp[i][j]的含义。dp[i][j]代表的是字符串在区间[i,j]中需要最少的打印次数。打印一个字符串的次数为1,因此dp[i][i] = 1当字符串长度大于等于2时,判断是否两边区间字符相等s[i] == s[j]?如果相等,打印次数可以从子区间的打印次数转移而来dp[i][j] = dp[i][j-1];。例如aba的打印次数由ab的打印次数决定。如果不相等,则原创 2021-05-24 16:07:32 · 250 阅读 · 0 评论 -
Leetcode-字典树-1707. 与数组中元素的最大异或值
题目1707. 与数组中元素的最大异或值:题解(CV):方法一:离线询问 + 字典树class Trie {public: const int L = 30; //每个结点有两个子节点0和1 Trie* children[2] = {}; //插入新数值 void insert(int val) { Trie* node = this; //从最高位开始一个一个插入 f原创 2021-05-23 16:09:37 · 224 阅读 · 0 评论 -
Leetcode-博弈-810. 黑板异或游戏
题目810. 黑板异或游戏:题解(from 宫水三叶):1,状态分析法:class Solution {public: bool xorGame(vector<int>& nums) { if(nums.size()%2==0){return true;} else { int sum = 0; for(auto i : nums){sum ^= i原创 2021-05-22 18:52:40 · 153 阅读 · 1 评论 -
Leetcode-状态压缩+动态规划-1035. 不相交的线
题目1035. 不相交的线:题解:动态规划class Solution {public: int maxUncrossedLines(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(), n = nums2.size(); vector<vector<int>> dp(m + 1, vector<原创 2021-05-21 19:51:03 · 165 阅读 · 0 评论 -
Leetcode-lambda重载排序+优先队列-692. 前K个高频单词
题目692. 前K个高频单词:题解:map+vector重载排序1:class Solution {public: static bool compare(const pair<string,int>& a,const pair<string,int>& b) { if(a.second == b.second){return a.first < b.first;} else return a.原创 2021-05-20 15:04:41 · 473 阅读 · 2 评论 -
错误:error: reference to non-static member function must be called
问题:error: reference to non-static member function must be called原因:在类成员函数中调用三个参数的sort(),并且也将compare函数定义为类成员函数,需要将compare函数在类中定义为static!解决方法:...原创 2021-05-20 12:10:50 · 2623 阅读 · 1 评论 -
Leetcode-前缀值-1738. 找出第 K 大的异或坐标值
题目1738. 找出第 K 大的异或坐标值:题解 :方法一:二维前缀和 + 排序原创 2021-05-19 17:18:08 · 153 阅读 · 0 评论 -
Leetcode-DFS/BFS-993. 二叉树的堂兄弟节点
题目993. 二叉树的堂兄弟节点:题解:普通DFSclass Solution {public: bool isCousins(TreeNode* root, int x, int y) { dfs(root, x, y, 0); return (child2Parent[x] != child2Parent[y] && node2level[x] == node2level[y]); }private: u原创 2021-05-17 11:29:23 · 166 阅读 · 0 评论 -
Leetcode-模拟-13. 罗马数字转整数
题目13. 罗马数字转整数:题解:class Solution {public: unordered_map<char,int> c2i = { {'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000} }; int romanToI原创 2021-05-15 15:32:46 · 112 阅读 · 0 评论 -
Leetcode-模拟-12. 整数转罗马数字
题目12. 整数转罗马数字:题解:傻瓜式模拟:class Solution {public: string intToRoman(int num) { string res=""; while(num >= 1000) { num -= 1000; res= res + "M"; } if(num >= 900) {原创 2021-05-14 16:51:51 · 354 阅读 · 0 评论 -
Leetcode-动态规划-1269. 停在原地的方案数
题目1269. 停在原地的方案数:题解:动态规划class Solution {public: const int MODULO = 1000000007; int numWays(int steps, int arrLen) { int maxColumn = min(arrLen - 1, steps); vector<vector<int>> dp(steps + 1, vector<int&g原创 2021-05-13 18:09:44 · 132 阅读 · 0 评论 -
Leetcode-dfs-872. 叶子相似的树
题目872. 叶子相似的树:题解:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(n原创 2021-05-10 13:18:17 · 121 阅读 · 0 评论