![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
紫菜(Nori)
Happy with code!
展开
-
2419. 按位与最大的最长子数组
【代码】2419. 按位与最大的最长子数组。原创 2023-09-24 18:31:04 · 76 阅读 · 0 评论 -
91. 解码方法
递归、动态规划原创 2023-08-20 18:49:35 · 1678 阅读 · 1 评论 -
347. 前 K 个高频元素
2.放入优先队列(最大堆)1.哈希记录元素出现次数。3.依次出队获取结果。原创 2023-08-13 18:08:30 · 43 阅读 · 0 评论 -
230. 二叉搜索树中第K小的元素
中序遍历:左子树 -> 中 -> 右子树。二叉搜索树:中序遍历可以得到有序的序列。原创 2023-08-13 09:00:36 · 109 阅读 · 0 评论 -
239. 滑动窗口最大值
【代码】239. 滑动窗口最大值。原创 2023-08-04 21:43:26 · 32 阅读 · 0 评论 -
6929. 数组的最大美丽值
【代码】6929. 数组的最大美丽值。原创 2023-07-16 11:33:08 · 56 阅读 · 0 评论 -
6893. 特别的排列
【代码】6893. 特别的排列。原创 2023-06-18 15:03:56 · 70 阅读 · 0 评论 -
C# List.Sort分析
排序算法原创 2023-01-13 13:52:34 · 732 阅读 · 0 评论 -
2315. 统计星号
找规律原创 2022-07-09 12:04:19 · 141 阅读 · 0 评论 -
2316. 统计无向图中无法互相到达点对数
无向图、函数传参原创 2022-07-09 12:01:38 · 339 阅读 · 0 评论 -
2311. 小于等于 K 的最长二进制子序列
位运算、数学原创 2022-07-03 20:44:33 · 90 阅读 · 0 评论 -
2310. 个位数字为 K 的整数之和
数学原创 2022-07-03 20:29:14 · 95 阅读 · 0 评论 -
2309. 兼具大小写的最好英文字母
数组原创 2022-07-03 20:25:03 · 99 阅读 · 0 评论 -
2303. 计算应缴税款总额
范围计算原创 2022-06-19 22:08:07 · 84 阅读 · 0 评论 -
6096. 咒语和药水的成功对数
递增、递减排序原创 2022-06-12 22:04:43 · 177 阅读 · 0 评论 -
6095. 强密码检验器 II
简单条件遍历原创 2022-06-12 21:41:32 · 73 阅读 · 0 评论 -
6090. 极大极小游戏
规则伸缩区间原创 2022-06-05 20:18:22 · 210 阅读 · 0 评论 -
6091. 划分数组使最大差为 K
区间扩展原创 2022-06-05 20:13:00 · 136 阅读 · 0 评论 -
6092. 替换数组中的元素
哈希原创 2022-06-05 20:05:40 · 106 阅读 · 0 评论 -
2278. 字母在字符串中的百分比
问题:为什么,当代码中的times变量为float类型是,执行case会得到错误的结果?class Solution {public: int percentageLetter(string s, char letter) { // 这里使用浮点数,方便进行浮点数的除法运算 /* Note: 如果这里使用float类型将结果装换为int时会导致结果减一 case: times = 59; size = 100,.原创 2022-05-29 20:31:20 · 95 阅读 · 0 评论 -
2279. 装满石头的背包的最大数量
class Solution {public: int maximumBags(vector<int>& capacity, vector<int>& rocks, int additionalRocks) { // 存放每个背包还可放入物件数,相同类型的放入数只保存放入一次 vector<int> spaceVec; // key:spaceVec中的值 // value : 这种.原创 2022-05-29 20:24:43 · 115 阅读 · 0 评论 -
2273. 移除字母异位词后的结果数组
class Solution {public: vector<string> removeAnagrams(vector<string>& words) { // 2个辅助数组 // 始终保持aux1为存储,当前遍历下标i的,i-1下标,对应字符串的每个字符对应的数字组成的数组 vector<int> aux1(0); vector<int> aux2(0); .原创 2022-05-21 18:33:40 · 153 阅读 · 0 评论 -
2274. 不含特殊楼层的最大连续楼层数
class Solution {public: int maxConsecutive(int bottom, int top, vector<int>& special) { int ans = 0; // 先排序 sort(begin(special), end(special)); // 方便后面计算 int lastLayer = bottom - 1; i.原创 2022-05-21 18:19:51 · 83 阅读 · 0 评论 -
2275. 按位与结果大于零的最长组合
基本版(超时) :class Solution {public: int largestCombination(vector<int>& candidates) { int ans = 1; // 先排序 sort(begin(candidates), end(candidates)); // 将所有元素放入递归队列 for(int i = 0; i < ca原创 2022-05-21 18:07:57 · 99 阅读 · 0 评论 -
5299. 找到一个数字的 K 美丽值
用了几个函数:to_string(someone_type): 将某种类型转换为stringstoi(string_type): 将字符串转换为数字class Solution {public: int divisorSubstrings(int num, int k) { int ans = 0; // 先将其转换为字符串 string str = to_string(num); ..原创 2022-05-15 18:14:40 · 118 阅读 · 0 评论 -
6067. 分割数组的方案数
class Solution {public: int waysToSplitArray(vector<int>& nums) { // 分别记录右左两边的累加和 long long right = 0, left = 0; // 先记录所有的右边的累加和 for(int i = 0; i < nums.size(); i++){ right += nums[i]; } .原创 2022-05-15 18:09:11 · 102 阅读 · 0 评论 -
6068. 毯子覆盖的最多白色砖块数
超时版本1:基本思路为:先排序,将所有的左边填充到一个辅助数组中,最后遍历这个数组。class Solution {public: int maximumWhiteTiles(vector<vector<int>>& tiles, int carpetLen) { // 排序 sort(begin(tiles), end(tiles), [](auto &ele1, auto &ele2){return原创 2022-05-15 18:04:31 · 120 阅读 · 0 评论 -
【无标题】
基础版:class Solution {public: int minimumRounds(vector<int>& tasks) { // 先排序 sort(begin(tasks), end(tasks)); int ans = 0; // 依据count,计算完成该任务的最小轮数,这里count小于等于1的情况 auto fun0 = [](int count) {原创 2022-05-15 15:29:27 · 69 阅读 · 0 评论 -
2243. 计算字符串的数字和
class Solution {public: string digitSum(string s, int k) { string str = s; // 当长度小于k时结束循环 while(str.size() > k){ // 接受每次处理后的字符串 string newStr; for(int i = 0; i < str.size();).原创 2022-05-14 16:09:50 · 138 阅读 · 0 评论 -
6057. 统计值等于子树平均值的节点数、树的后序遍历
/** * 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(nullptr), right(nullptr) {} *.原创 2022-05-08 17:29:12 · 355 阅读 · 0 评论 -
6056. 字符串中最大的 3 位相同数字
class Solution {public: string largestGoodInteger(string num) { // 临时字符 char c = ' '; // 最大的数字 int maxVal = 0; // 连续字符出现的长度 int len = 0; for(int i = 0; i < num.size(); i++){.原创 2022-05-08 17:22:23 · 224 阅读 · 0 评论 -
6043. 统计包含每个点的矩形数目、横纵排序比较
暴力版(超时):class Solution {public: vector<int> countRectangles(vector<vector<int>>& rectangles, vector<vector<int>>& points) { vector<int> ans(points.size()); for(int i = 0; i < points.原创 2022-05-07 20:00:51 · 177 阅读 · 0 评论 -
2248. 多个数组求交集
class Solution {public: const int SIZE = 1001; vector<int> intersection(vector<vector<int>>& nums) { // 辅助数组,用于记录数字的出现次数 int aux[SIZE]; // 初始化数组 for(int i = 1; i < 1001; i++){ .原创 2022-05-07 17:10:44 · 234 阅读 · 0 评论 -
2249. 统计圆内格点数目
class Solution {public: int countLatticePoints(vector<vector<int>>& circles) { // 最大的x,y坐标轴值 int maxY = 0, maxX = 0; // 最小的x,y坐标轴值 int minY = 100, minX = 100; for(int i = 0; i < circles.size.原创 2022-05-07 17:03:49 · 367 阅读 · 0 评论 -
2255. 统计是给定字符串前缀的字符串数目
注意循环中break或continue的作用范围class Solution {public: int countPrefixes(vector<string>& words, string s) { int ans = 0; for(int i = 0; i < words.size(); i++){ string str = words[i]; // 当前字符不相等;当前字..原创 2022-05-04 18:37:47 · 154 阅读 · 0 评论 -
2256. 最小平均差、数字计算
class Solution {public: int minimumAverageDifference(vector<int>& nums){ // abs: 最小平均差对应的下标 // minVal: 当前最小平均差 int ans = nums.size(), minVal = INT32_MAX; // left: 小于等于当前下标的所有元素值之和 // righ.原创 2022-05-04 18:34:07 · 168 阅读 · 0 评论 -
2257. 统计网格图中没有被保卫的格子数、检索标记
暴力版本:直接使用一个二维数组保存、墙、护卫的信息。在保存护卫的信息时,处理这个护卫东西南北个个方向的方格,最后计算未被保卫的方格数。class Solution {public: int countUnguarded(int m, int n, vector<vector<int>>& guards, vector<vector<int>>& walls) { /* 优化部分:原创 2022-05-04 18:20:59 · 205 阅读 · 0 评论 -
【无标题】
版本1:class Solution {public: int minimumCardPickup(vector<int>& cards) { /* key: 每个卡牌数字 value: 对应出现在cards中的位置 */ map<int, vector<int>> map; // 出现超过1次的卡牌数字 set<int&g原创 2022-05-03 20:26:08 · 126 阅读 · 0 评论 -
2259. 移除指定数字得到的最大结果、字符串
版本1:class Solution {public: string removeDigit(string number, char digit) { // 记录字符出现的位置 int pos0 = -1; // 获取第一次字符出现的位置 int i = 0; for(; i < number.size(); i++){ if(number[i] == digit){原创 2022-05-03 19:58:31 · 250 阅读 · 0 评论 -
6027. 统计数组中峰和谷的数量
解题思路:1.每一次处理前一个元素,只纪录当前元素的可能情况2.使用数字代表三种情况,免去不必要的越界判断class Solution {public: int countHillValley(vector<int>& nums) { int ans = 0; /* -1: 不处理类型 0: 山峰 1: 山谷 */ int ...原创 2022-03-20 18:52:06 · 628 阅读 · 0 评论