自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Leetcode 91. 解码方法

91. 解码方法示例 1:输入:s = “12”输出:2解释:它可以解码为 “AB”(1 2)或者 “L”(12)。示例 2:输入:s = “226”输出:3解释:它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。动态规划题,dp[i]表示前i个数字可以有的编码种类的个数。考虑前i个数字,第i个数字被编码有两种情况:1、当它不为0时,这个数字可以单独被编码为一个字母;2、当它前一个数字不是0,并且这两个数字组合起来不大于26时,可

2021-04-22 21:02:26 111 1

原创 Leetcode 88. 合并两个有序数组

88. 合并两个有序数组因为nums1数组的大小是m+n,为了不占用额外的内存空间,可以直接在nums1数组上进行操作;使用两个指针从两个数组的最后遍历,模拟即可class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int p = m - 1, q = n - 1; int cnt = m +

2021-04-05 17:21:01 100

原创 Leetcode 781. 森林中的兔子

781. 森林中的兔子class Solution {public: int numRabbits(vector<int>& answers) { int len = answers.size(); if(len == 0) return 0; else{ int ans = 0; sort(answers.begin(), answers.end());

2021-04-04 19:34:41 104

原创 Leetcode 1143. 最长公共子序列

1143. 最长公共子序列边界条件:dp[i][0] = 0 ,dp[0][j] = 0转移方程:if text1[i] == text2[j]: dp[i + 1][j + 1] = dp[i][j] + 1;else dp[i + 1][j + 1] = max(dp[i][j + 1], dp[i + 1][j]);class Solution {public: int longestCommonSubsequence(string text1, string text2) {

2021-04-03 13:39:42 68

原创 Leetcode 面试题 17.21. 直方图的水量

面试题 17.21. 直方图的水量每个位置的最大接水量 = max(左边最高单位,左边最高单位)- 自身的高度class Solution {public: int trap(vector<int>& height) { int len = height.size(); if(len == 0) return 0; vector<int> highl(len, 0), highr(len, 0);

2021-04-02 15:32:39 73

原创 Leetcode 1006. 笨阶乘

1006. 笨阶乘笨阶乘:用栈模拟就好了class Solution {public: int clumsy(int N) { stack<int> st; st.push(N); N--; int n = 0; while(N){ if(n % 4 == 0){ st.top() = st.top() * N; }

2021-04-01 22:18:37 58

原创 Leetcode 74. 搜索二维矩阵

74. 搜索二维矩阵我能想到的笨方法:用两次二分查找,先二分找到要查找元素应该在的一行,然后在该行二分。class Solution {public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int rows = matrix.size(); int cols = matrix[0].size(); int l = 0, r = r

2021-03-30 11:35:10 1179 3

原创 Leetcode 190. 颠倒二进制位

190. 颠倒二进制位第一种方法简单的模拟就可以,注意是二进制,答案要用long防止溢出class Solution {public: uint32_t reverseBits(uint32_t n) { long ans = 0; for(int i = 0; i < 32; i++){ ans = ans * 2 + n % 2; n = n / 2; } return

2021-03-29 11:26:46 180

原创 Leetcode 173. 二叉搜索树迭代器

173. 二叉搜索树迭代器可以利用栈这一数据结构,通过迭代的方式对二叉树做中序遍历。此时,我们无需预先计算出中序遍历的全部结果,只需要实时维护当前栈的情况即可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), righ

2021-03-28 21:27:24 51

原创 Leetcode 61. 旋转链表

61. 旋转链表/** * 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, ListNode *next) : val(x),

2021-03-27 21:47:49 57 1

原创 Leetcode 83. 删除排序链表中的重复元素

83. 删除排序链表中的重复元素今天的题目是昨天题目的简化版,删除链表中的重复元素,但是重复的元素不必全部删除,保留一个就好;只需要从第一个结点开始判断下一个结点(cur)与当前结点(pre2)是否相等:相等就删除第一个结点(pre2),pre1结点的next指向第二个结点(cur);不相等就往后推,头部结点(pre1)等于第一个结点(pre2),第一个结点(pre2)等于第二个结点(cur)while判断是要注意不能仅使用 pre2->next != nullptr, 若初始时空的

2021-03-26 10:44:40 80 3

原创 Leetcode 82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II链表要注意表头虚节点定义 ListNode* dummy = new ListNode(-1) 可以防止意外的错误/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x

2021-03-25 14:17:34 52 1

原创 Leetcode每日一题 2021.3.24

456. 132 模式(单调栈)主要思路是从后往前去遍历2 表示当前仅小于最大3的有效数字: 初始时为 INT_MIN无效值3 则不断用一个单调栈维护,保证是单调递减的在过程中,一旦发现比 有效2 小的数字,那么肯定有一个3大于2, 那么就存在这样的132模式了这里每次会更新为更大的数字,这样子1更加容易满足条件class Solution {public: bool find132pattern(vector<int>& nums) { st

2021-03-24 17:18:46 85 1

原创 Leetcode每日一题 2021.3.23

341. 扁平化嵌套列表迭代器由于「栈」的先进后出的特性,我们需要逆序在栈里放入各个元素。处理流程分为两步:在构造函数中应该初始化,把当前列表的各个元素(不用摊平)逆序放入栈中。在 hasNext() 方法中,访问(不弹出)栈顶元素,判断是否为 int:如果是 int 那么说明有下一个元素,返回 true;然后 next() 就会被调用,把栈顶的 int 弹出;如果是 list 需要把当前列表的各个元素(不用摊平)逆序放入栈中。如果栈为空,那么说明原始的嵌套列表已经访问结束了,返回 fals

2021-03-23 16:24:40 166 6

原创 Leetcode每日一题 2021.3.22

191. 位1的个数(位运算)n&(n-1) 的计算结果为把n二进制最低位的1变为0class Solution {public: int hammingWeight(uint32_t n) { int ans = 0; while(n){ n = (n & n - 1); ans++; } return ans; }};...

2021-03-22 10:30:44 71

原创 Leetcode每日一题 2021.3.21

73. 矩阵置零class Solution {public: void setZeroes(vector<vector<int>>& matrix) { //矩阵的第一行和第一列设置为标志位,标记这一行一列是否有0 int rows = matrix.size(); int cols = matrix[0].size(); int flag_row = 1, flag_col = 1;

2021-03-21 14:43:54 58

原创 Leetcode每日一题 2021.3.20

150. 逆波兰表达式求值栈class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> ans; for(int i = 0; i < tokens.size(); i++){ if(tokens[i] == "+"){ int a = ans.top();

2021-03-20 20:44:05 64

原创 Leetcode每日一题 2021.3.19

1603. 设计停车系统难度:简单class ParkingSystem {public: int a, b, c; ParkingSystem(int big, int medium, int small) { a = big; b = medium; c = small; } bool addCar(int carType) { if(carType == 1){ i

2021-03-19 11:14:08 75

原创 Leetcode每日一题 2021.3.18

92. 反转链表 II(链)数据结构数据结构/** * 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, ListNode *n

2021-03-18 20:23:27 101 3

原创 Leetcode每日一题 2021.3.17

115. 不同的子序列(

2021-03-17 14:41:11 72 1

原创 Leetconde 每日一题 2021.3.15 - 3.16

2021/3/15 54. 螺旋矩阵(模拟)按照行列简单的模拟即可class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { int rows = matrix.size(); int cols = matrix[0].size(); vector<int> ans(rows*cols);

2021-03-15 19:57:37 94 1

原创 Leetconde 每日一题(3.8-3.14)

2021/3/8 132. 分割回文串 II(dp)与昨天的题目不同,数据范围不一样,最后需要求得的答案也不同;这里主要还是需要动态规划,而且需要两次1、参考昨天的题目,首先求出字符串任意位置i到j是否为回文串,做法与上一题相同;2、为了求最小的分割数,需要一次dp,参考代码class Solution {public: int minCut(string s) { int n = s.size(); vector<vector<int>

2021-03-08 10:32:17 139 2

原创 Leetcode 每日一题 (3.3-3.7)

2021/3/3 338.比特位计数(dp)时间复杂度o(n)的做法:1、当num是2的次幂的时,num二进制中的1的数目就为1,判断用(num & (num-1)) == 0(注意括号),这样的数标记为high;num不是2的次幂时,设前一个high为x,二进制中1的数目就为count(num-x)+1;class Solution {public: vector<int> countBits(int num) { vector<int> c

2021-03-03 11:22:37 98

转载 《An Experiment-Based Review of Low-Light Image Enhancement Methods》低光图像增强综述

《An Experiment-Based Review of Low-Light Image Enhancement Methods》低光图像增强综述 在弱光照条件下拍摄的图像往往具有亮度低、对比度低、灰度范围窄、颜色失真等特点,并且噪声较大,严重影响了人眼的主观视觉效果,极大地限制了各种机器视觉系统的性能。微光图像增强的作用是提高这些图像的视觉效果,以利于后续处理。本文综述了近几十年来发展起来的微光图像增强技术。首先,我们对这些算法进行了新的分类,将其分为七类:灰度变换法、直方图均衡法、Retinex

2020-10-28 21:43:33 2152

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除