
C++
文章平均质量分 96
C++语言的基础、应用等
andyL_05
EE 计算机视觉 机器学习 深度学习 算法
展开
-
LeetCode 第275场周赛
本次周赛题目比较简单,比赛链接位于这里No.1 检查是否每一行每一列都包含全部整数对一个大小为 n x n 的矩阵而言,如果其每一行和每一列都包含从 1 到 n 的 全部 整数(含 1 和 n),则认为该矩阵是一个 有效 矩阵。给你一个大小为 n x n 的整数矩阵 matrix ,请你判断矩阵是否为一个有效矩阵:如果是,返回 true ;否则,返回 false 。示例 1:输入:matrix = [[1,2,3],[3,1,2],[2,3,1]]输出:true解释:在此例中,n = 3 ,原创 2022-01-11 17:14:51 · 903 阅读 · 0 评论 -
LeetCode 第274场周赛
本次周赛是2022年的第一场周赛。题目链接位于这里No 1. 检查是否所有 A 都在 B 之前 显示英文描述User Accepted:1635User Tried:1773Total Accepted:1640Total Submissions:2009Difficulty:Easy给你一个 仅 由字符 ‘a’ 和 ‘b’ 组成的字符串 s 。如果字符串中 每个 ‘a’ 都出现在 每个 ‘b’ 之前,返回 true ;否则,返回 false 。示例 1:输入:s = “aaabbb”原创 2022-01-09 22:25:17 · 664 阅读 · 0 评论 -
LeetCode 第273场周赛
LeetCode 第273场周赛 解析这次周赛应该是2021年度的最后一场周赛了,下一场就到2022年了。这篇博客对本次周赛的题目做一个解析。题目链接位于这里No 1.反转两次的数字反转 一个整数意味着倒置它的所有位。例如,反转 2021 得到 1202 。反转 12300 得到 321 ,不保留前导零 。给你一个整数 num ,反转 num 得到 reversed1 ,接着反转 reversed1 得到 reversed2 。如果 reversed2 等于 num ,返回 true ;否则,返原创 2021-12-27 15:50:46 · 444 阅读 · 0 评论 -
LeetCode 第271场周赛
这篇文章小结一下271场周赛的题目和解析。这场比赛在这里No.1 环和杆总计有 n 个环,环的颜色可以是红、绿、蓝中的一种。这些环分布穿在 10 根编号为 0 到 9 的杆上。给你一个长度为 2n 的字符串 rings ,表示这 n 个环在杆上的分布。rings 中每两个字符形成一个 颜色位置对 ,用于描述每个环:第 i 对中的 第一个 字符表示第 i 个环的 颜色(‘R’、‘G’、‘B’)。第 i 对中的 第二个 字符表示第 i 个环的 位置,也就是位于哪根杆上(‘0’ 到 ‘9’)。例如,“原创 2021-12-12 14:01:00 · 3993 阅读 · 0 评论 -
LeetCode 第 267 场周赛
本文对267场周赛题目做一个小结。周赛题目链接在此No 1 买票需要的时间有 n 个人前来排队买票,其中第 0 人站在队伍 最前方 ,第 (n - 1) 人站在队伍 最后方 。给你一个下标从 0 开始的整数数组 tickets ,数组长度为 n ,其中第 i 人想要购买的票数为 tickets[i] 。每个人买票都需要用掉 恰好 1 秒 。一个人 一次只能买一张票 ,如果需要购买更多票,他必须走到 队尾 重新排队(瞬间 发生,不计时间)。如果一个人没有剩下需要买的票,那他将会 离开 队伍。返回位原创 2021-11-14 14:50:38 · 5330 阅读 · 1 评论 -
LeetCode 第264场周赛
本次周赛开幕雷击,题目难度并不高,但是第一题就很麻烦,一定程度上影响了参赛者的积极性。本文小结一下周赛题目。No 1 句子中的有效单词数句子仅由小写字母(‘a’ 到 ‘z’)、数字(‘0’ 到 ‘9’)、连字符(’-’)、标点符号(’!’、’.’ 和 ‘,’)以及空格(’ ')组成。每个句子可以根据空格分解成 一个或者多个 token ,这些 token 之间由一个或者多个空格 ’ ’ 分隔。如果一个 token 同时满足下述条件,则认为这个 token 是一个有效单词:仅由小写字母、连字符和/原创 2021-10-24 14:52:34 · 2720 阅读 · 0 评论 -
第232场LeetCode周赛
第232场LeetCode周赛No 1. 仅执行一次字符串交换能否使两个字符串相等给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。示例 1:输入:s1 = “bank”, s2 = “kanb”输出:true解释:例如,交换 s2 中的第一个和最后一个字符可以得到 “bank”原创 2021-03-18 21:24:12 · 234 阅读 · 0 评论 -
第47场 LeetCode 双周赛
第47场 LeetCode 双周赛本次周赛链接No.1 找到最近的有相同 X 或 Y 坐标的点给你两个整数 x 和 y ,表示你在一个笛卡尔坐标系下的 (x, y) 处。同时,在同一个坐标系下给你一个数组 points ,其中 points[i] = [ai, bi] 表示在 (ai, bi) 处有一个点。当一个点与你所在的位置有相同的 x 坐标或者相同的 y 坐标时,我们称这个点是 有效的 。请返回距离你当前位置 曼哈顿距离 最近的 有效 点的下标(下标从 0 开始)。如果有多个最近的有效点,请返原创 2021-03-11 22:50:57 · 607 阅读 · 0 评论 -
第219场LeetCode周赛
第219场LeetCode周赛No.1 比赛中的配对次数给你一个整数 n ,表示比赛中的队伍数。比赛遵循一种独特的赛制:如果当前队伍数是 偶数 ,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,且产生 n / 2 支队伍进入下一轮。如果当前队伍数为 奇数 ,那么将会随机轮空并晋级一支队伍,其余的队伍配对。总共进行 (n - 1) / 2 场比赛,且产生 (n - 1) / 2 + 1 支队伍进入下一轮。返回在比赛中进行的配对次数,直到决出获胜队伍为止。示例 1:输入:n = 7原创 2020-12-15 15:05:29 · 387 阅读 · 0 评论 -
第218场LeetCode周赛
第218场LeetCode周赛No 1. 设计 Goal 解析器请你设计一个可以解释字符串 command 的 Goal 解析器 。command 由 “G”、"()" 和/或 “(al)” 按某种顺序组成。Goal 解析器会将 “G” 解释为字符串 “G”、"()" 解释为字符串 “o” ,"(al)" 解释为字符串 “al” 。然后,按原顺序将经解释得到的字符串连接成一个字符串。给你字符串 command ,返回 Goal 解析器 对 command 的解释结果。示例 1:输入:command原创 2020-12-07 22:07:37 · 231 阅读 · 0 评论 -
第216场LeetCode周赛
第216场LeetCode周赛原创 2020-11-22 22:25:21 · 183 阅读 · 0 评论 -
LeetCode 第38次双周赛
//No 1 vector<int> frequencySort(vector<int>& nums) { unordered_map<int, int> m; for (auto n : nums)m[n]++; vector<pair<int, int>> vp; for (auto mm : m) { vp.push_back({ mm.second,mm.first }); }原创 2020-11-03 11:45:01 · 354 阅读 · 0 评论 -
C++ 字符串分割、整行输入分割等问题
C++ 字符串分割、整行输入分割等问题1. C++处理含分隔符的字符串原创 2020-10-24 18:59:59 · 4991 阅读 · 0 评论 -
LeetCode 第211场周赛
LeetCode 第211场周赛1. 两个相同字符之间的最长子字符串给你一个字符串 s,请你返回 两个相同字符之间的最长子字符串的长度 ,计算长度时不含这两个字符。如果不存在这样的子字符串,返回 -1 。子字符串 是字符串中的一个连续字符序列。示例 1:输入:s = “aa”输出:0解释:最优的子字符串是两个 ‘a’ 之间的空子字符串。示例 2:输入:s = “abca”输出:2解释:最优的子字符串是 “bc” 。提示:1 <= s.length <= 300s 只含原创 2020-10-18 21:48:20 · 593 阅读 · 0 评论 -
LeetCode 股票买卖系列 best time to buy and sell stock
LeetCode 股票买卖系列 best time to buy and sell stock原创 2020-10-05 15:22:45 · 335 阅读 · 1 评论 -
LeetCode第209次周赛
LeetCode第209次周赛本次周赛题目都不算很难,但是有一种“剑走偏锋”的感觉。No.1 特殊数组的特征值给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。注意: x 不必 是 nums 的中的元素。如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。示例原创 2020-10-04 16:19:19 · 388 阅读 · 0 评论 -
LeetCode第204场周赛
LeetCode第204场周赛本场周赛题目位于这里本次题目感觉还是比较有趣的,不是繁琐的业务或者单纯的技巧,注重思考的过程。1· 重复至少 K 次且长度为 M 的模式给你一个正整数数组 arr,请你找出一个长度为 m 且在数组中至少重复 k 次的模式。模式 是由一个或多个值组成的子数组(连续的子序列),连续 重复多次但 不重叠 。 模式由其长度和重复次数定义。如果数组中存在至少重复 k 次且长度为 m 的模式,则返回 true ,否则返回 false 。示例 1:输入:arr = [1,原创 2020-08-30 17:05:06 · 414 阅读 · 0 评论 -
LeetCode 第200场周赛
LeetCode 第200场周赛本期周赛依旧不算太难,不过需要比较仔细,不然容易被罚时。1.//No 1 int countGoodTriplets(vector<int>& arr, int a, int b, int c) { int ans = 0,len=arr.size(); if (len<3) return 0; for (int i = 0; i < len - 2; ++i) { for (int j = i +原创 2020-08-03 00:18:20 · 298 阅读 · 0 评论 -
LeetCode 第31场双周赛
LeetCode 第31场双周赛本周双周赛又是一次福利场,无奈手速不够快1. 在区间范围内统计奇数数目给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。示例 1:输入:low = 3, high = 7输出:3解释:3 到 7 之间奇数数字为 [3,5,7] 。示例 2:输入:low = 8, high = 10输出:1解释:8 到 10 之间奇数数字为 [9] 。解析本题要求区间内(左右都是闭区间)的奇数数量。实际上奇数大约占一原创 2020-07-26 00:18:43 · 317 阅读 · 0 评论 -
LeetCode 第30场双周赛
LeetCode 第30场双周赛大佬们的手速场,本菜鸡手速拼不过,不过本次双周赛依然是我做过最简单的一次了,福利场涨涨自信好了。1·转变日期格式给你一个字符串 date ,它的格式为 Day Month Year ,其中:Day 是集合 {"1st", "2nd", "3rd", "4th", ..., "30th", "31st"} 中的一个元素。Month 是集合 {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "原创 2020-07-12 00:33:25 · 310 阅读 · 0 评论 -
LeetCode 662 Maximum Width of Binary Tree 二叉树的最大宽度
LeetCode 662 Maximum Width of Binary Tree 二叉树的最大宽度题目描述Given a binary tree, write a function to get the maximum width of the given tree. The width of a tree is the maximum width among all levels. The binary tree has the same structure as a full binary tre原创 2020-07-09 21:13:18 · 341 阅读 · 0 评论 -
LeetCode weekly contest 196 第196期周赛
LeetCode weekly contest 196 第196期周赛1· 5452. 判断能否形成等差数列给你一个数字数组 arr 。如果一个数列中,任意相邻两项的差总等于同一个常数,那么这个数列就称为 等差数列 。如果可以重新排列数组形成等差数列,请返回 true ;否则,返回 false 。示例 1:输入:arr = [3,5,1]输出:true解释:对数组重新排序得到 [1,3,5] 或者 [5,3,1] ,任意相邻两项的差分别为 2 或 -2 ,可以形成等差数列。示例 2:输入原创 2020-07-05 17:22:41 · 319 阅读 · 0 评论 -
LeetCode 871. Minimum Number of Refueling Stops 最少加油次数
LeetCode 871. Minimum Number of Refueling Stops本题是LeetCode 871题,最少加油次数。题目描述A car travels from a starting position to a destination which is target miles east of the starting position.Along the way, there are gas stations. Each station[i] represents a原创 2020-07-04 21:32:14 · 408 阅读 · 0 评论 -
LeetCode 97 交错字符串 Interleaving String
LeetCode 97 交错字符串 Interleaving String题目描述Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.本题给定3个字符串,求第三个能否由前两个交错的组成。示例如下:Example 1:Input: s1 = “aabcc”, s2 = “dbbca”, s3 = “aadbbcbcac”Output: trueExample 2:Input: s1 = “aa原创 2020-07-01 20:35:37 · 318 阅读 · 0 评论 -
Leetcode136,137,260 Single number系列
Leetcode Single Number系列Single number,只出现一次的数字,是很经典的算法问题,leetcode上目前有3道相关题目,分别是136,137和260.本文将分享这三道题的思路。136 只出现一次的数字本题是此类问题的原型题,对于刷题比较少的朋友本题也是一道“开脑洞”的题目。这道题 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。数组的元素只有一个只出现了一次,其余都出现了2次。如果直接暴力求解,能想到2种解法。原创 2020-06-23 20:35:40 · 193 阅读 · 0 评论 -
LeetCode 115 Distinct Subsequences 不同子串
LeetCode 115 Distinct Subsequences 不同字串题目Given a string S and a string T, count the number of distinct subsequences of S which equals T.A subsequence of a string is a new string which is formed from the original string by deleting some (can be none) of原创 2020-06-10 17:25:02 · 285 阅读 · 0 评论 -
LeetCode 146 LRU缓存机制
题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从而为新的数据值留出空间。进阶:你是否可以原创 2020-05-28 09:58:05 · 203 阅读 · 0 评论 -
力扣第190场周赛
力扣第190场周赛作为为数不多能全做出来的一次周赛,简单分析一下题目和思路吧。本次周赛链接位于:weekly-contest-190这次周赛跟往常一样,包括分数和难度递增的四道题:1· 检查单词是否为句中其他单词的前缀本题要求给一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。如果 searchWord 是某一个单词的前缀,则返回句子 s原创 2020-05-24 15:31:15 · 255 阅读 · 0 评论 -
LeetCode 5 最长回文子串
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。例如:给定字符串 “babad”则最长回文子串为“bab” 或 “aba”解析这是一道经典问题,也有很经典的Manacher解法。根据回文串的定义,我们能直接想到的方法就是找到中心,向两侧扩展,找到回文部分的边界即可。这样我们可以枚举每一个字符作为中心,向两侧扩展找到以该字符为中心的回文子串,并返回其中最长的即可。要注意的是,回文字符串长度是奇数和偶数时,判断方法并不完全一致,这样可以写出“中心扩展原创 2020-05-21 21:20:30 · 172 阅读 · 0 评论 -
括号相关题目 LeetCode 20 有效括号 LeetCode 32 最长有效括号子串
括号序列相关题目与括号序列有关的算法题目也较为常见,例如是否有效、有效深度、最长有效子序列等。这里对几道有代表性的题目做一下简单介绍。括号序列的有效性判断比如 LeetCode 20这里我们看到题目对于有效的定义,关键就在于正确的顺序和同类型括号闭合。自然而然我们想到可以用栈的数据结构完成,将左括号入栈,遇到右括号就查看栈顶元素是否是同类型左括号,如果是的话就可以认为这个左括号以正确顺序用同类右括号闭合了;否则就没有正确闭合,那这个字符串就不是有效的。代码如下:bool isValid(str原创 2020-05-09 17:43:18 · 434 阅读 · 0 评论 -
二叉树的层序遍历、之字形打印问题
二叉树的层序遍历这是一道比较经典的问题,要求逐层遍历二叉树并打印节点,而且也有些变体。其实这不仅是一道考察对树形或图结构了解程度的问题,实现一个这样的函数其实能够帮助我们直观的打印一颗二叉树,在遇到复杂二叉树的问题时如果出现bug,也可以借助这种方式可视化出来调试。这个问题本身也有一些变体问题。如上图所示,这是一颗二叉树,我们以他为例讨论。1· 最直接的层序遍历简单的层序遍历只要从最上层...原创 2020-05-05 19:53:55 · 722 阅读 · 0 评论 -
剑指offer 51 数组中的逆序对
题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。例如:输入数组 [7,5,6,4]输出 5分析:数组中(7,5), (7,6), (7,4), (5,4), (6,4)均构成逆序对因此共有5个。分析逆序对定义为排在前面的数比后面的数要大组成的数对,换言之,如果过我们对数组排序,发生了交换顺序的情况就...原创 2020-04-24 20:44:29 · 195 阅读 · 0 评论 -
第185场力扣(LeetCode)周赛 “生成数组” 问题
抽时间做了一下第185场的力扣(LeetCode)周赛,最后一题“生成数组”问题,把自己绕进去了,绕了很久才想通,在这里给大家分享一下。题目描述首先题目位于生成数组这里,简要描述如下:给定了这么一个算法:在求最大值的时候计算最大值的更新次数 search_cost。题目要求给定3个正整数n, m, k,生成一个长度为n的数组arr,其中数组每个元素取值都满足 1≤arr[i]≤m,i∈[...原创 2020-04-19 20:57:27 · 640 阅读 · 0 评论 -
通过矩阵快速幂在O(logN)时间求斐波那契数列及其推广形式
通过矩阵快速幂在O(logN)时间求斐波那契数列及其推广形式1. 斐波那契数列这个数列非常经典了,递推公式为:f(n)=f(n−1)+f(n−2)f(n)=f(n-1)+f(n-2)f(n)=f(n−1)+f(n−2)前几项为:1, 2, 3, 5, 8, 13, 21, 34, 55…如果我们要求斐波那契数列的第n项,我们一般用到的是O(N)复杂度的解法,也即构造一个长度为n的数组,...原创 2020-04-17 09:40:18 · 809 阅读 · 0 评论 -
LeetCode 300 最长上升子序列
题目描述给定一个无序的整数数组,找到其中最长上升子序列的长度。例如:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。解析暴力解法本题很容易想到最暴力的解法,那就是找到所有的子序列,逐一判断是否是上升子序列,并记录长度,从而得到最长上升子序列的长度。显然,序列中每个元素都有“加入子序列”或“不加入”两种状...原创 2020-04-16 19:58:27 · 157 阅读 · 0 评论 -
剑指offer面试题 - 30 包含min函数的栈
包含min函数的栈题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min, push, pop的时间复杂度都是O(1)O(1)O(1)分析由于实现的是一个栈的数据结构,要求数据先进后出,如果我们对push进来的元素排序,显然就破坏了这一顺序;如果每次求最小值都遍历栈中所有元素,则min函数时间复杂度会为O(n)O(n)O(n).这一问题我们可...原创 2020-01-06 20:58:07 · 188 阅读 · 0 评论