- 博客(21)
- 资源 (1)
- 收藏
- 关注
原创 【Leetcode-算法】1047. 删除字符串中的所有相邻重复项(C++)
给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。思路: 思路和括号匹配差不多8,用栈就行。AC代码:class Solution {public: string removeDuplicates(string S) { string S2; for(int i=0;i<S.l...
2021-03-09 15:20:38
345
原创 【Leetcode-算法】1352. 最后 K 个数的乘积(C++)
请你实现一个「数字乘积类」ProductOfNumbers,要求支持下述两种方法:1.add(int num)将数字num添加到当前数字列表的最后面。2. getProduct(int k)返回当前数字列表中,最后k个数字的乘积。你可以假设当前列表中始终 至少 包含 k 个数字。题目数据保证:任何时候,任一连续数字序列的乘积都在 32-bit 整数范围内,不会溢出。思路: 首先,存乘积而不存原数,此时是O(n)会超时,考虑维护前缀积来优化。用前缀积表示前i...
2021-03-05 23:01:39
226
原创 【Leetcode-算法】232. 用栈实现队列(C++)
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列的支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty() 如果队列为空,返回 true ;否则,返回 false思路: 其实就是两个栈倒来倒去~适当的时间倒可以提高效率。 我们只要保证,要输出的那...
2021-03-05 14:45:36
325
原创 BUAA 2020年 HCI考题
作为期末突击党深谙往年题的重要性~凭记忆写一下考题 希望能帮到来年的同学们~1.为什么要研究人机交互?2.rgb属于什么混色,各通道和视觉各类型细胞有什么关系?3.满足格式塔的人机交互的系统有什么特点?4.什么是可用性评估范式?5.用户概念模型和设计概念模型分别是什么,他们有什么关系?6.什么是认知走查?7.什么是启发式评估?8.出声思考?9.什么是iso9241可用性?附一个19年的卷子 感谢博主的文章 帮到很多!!https://blog.csdn.net/s..
2020-12-29 23:52:27
410
2
原创 【Leetcode-算法】844. 比较含退格的字符串(C++)
给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。注意:如果对空文本输入退格字符,文本继续为空。思路: 两个思路。 第一种思路是用栈来保存退格处理后的字符串(#就弹出,否则压入)。然后比较两个栈中处理后的字符串是否一致。但这种算法会占用额外的空间,会提高空间复杂度。于是有了第二种思路。 第二种思路是用双指针。因为退格符只影响它前面的字符,不会影响后面的,所以可以从后往前遍历字...
2020-10-19 16:53:14
376
原创 【Leetcode-算法】455. 分发饼干(C++)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j]。如果 s[j]>= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。提示:1 <= g.length <= 3 * 10^40 <= s.length <= 3 * 10^...
2020-10-19 15:42:56
535
原创 【Leetcode-算法】122. 买卖股票的最佳时机 II(C++)
给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。思路: 绘制一个股价的折线图,可以判断应该在拐点处进行交易:峰值卖出、谷点买入。另外考虑一下可能几天股价相同的情况,再对头天是涨还是跌判断一下,以及最后一天判断一下是否清仓,于是有了下面第一版的代码。AC代码 O(n):class Solution...
2020-09-29 15:50:02
105
原创 【Leetcode-算法】994. 腐烂的橘子(C++)
在给定的网格中,每个单元格可以有以下三个值之一:值0代表空单元格;值1代表新鲜橘子;值2代表腐烂的橘子。每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回-1。思路: 比较基础的BFS。建立一个队列存放腐烂橘子的位置,并记录新鲜橘子的个数。循环过程中若腐烂,则fresh--,且把刚被腐烂的橘子加入到队列中,每搜完一层将记录最短时间的变量min++。直到队列为空。最后...
2020-09-28 14:54:12
545
原创 【Leetcode-算法】剑指 Offer 57. 和为s的两个数字(C++)
剑指 Offer 57. 和为s的两个数字输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例 1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例 2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51.
2020-09-27 16:47:17
210
原创 【Leetcode-算法】538. 把二叉搜索树转换为累加树(C++)
开学了,继续刷力扣复健QAQ给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 原始二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / \ 20 13思路: ...
2020-09-21 15:51:13
120
原创 【Leetcode-算法】1155. 掷骰子的N种方法(C++)
1155. 掷骰子的N种方法这里有d个一样的骰子,每个骰子上都有f个面,分别标号为1, 2, ..., f。我们约定:掷骰子的得到总点数为各骰子面朝上的数字的总和。如果需要掷出的总点数为target,请你计算出有多少种不同的组合情况(所有的组合情况总共有 f^d 种),模10^9 + 7后返回。示例 1:输入:d = 1, f = 6, target = 3输出:1示例 2:输入:d = 2, f = 6, target = 7输出:6示例 3:输入:d = ...
2020-08-21 19:36:04
704
1
原创 【Leetcode-算法】712. 两个字符串的最小ASCII删除和(C++)
712. 两个字符串的最小ASCII删除和给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。示例 1:输入: s1 = "sea", s2 = "eat"输出: 231解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。在 "eat" 中删除 "t" 并将 116 加入总和。结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。示例2:输入: s1 = "delete", s2 = "leet".
2020-08-21 16:44:54
229
原创 【Leetcode-算法】709.转换成小写字母(C++)
709.转换成小写字母实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。想法: 水题,凑个题量。 热知识:'A'-'a'=-32。AC代码:class Solution {public: string toLowerCase(string str) { for(int i=0;i<str.length();i++){ if(str[...
2020-08-21 09:56:09
149
原创 【Leetcode-算法】1122.数组的相对排序(C++)
1122.数组的相对排序给你两个数组,arr1 和arr2,arr2中的元素各不相同arr2 中的每个元素都出现在arr1中对 arr1中的元素进行排序,使 arr1 中项的相对顺序和arr2中的相对顺序相同。未在arr2中出现过的元素需要按照升序放在arr1的末尾。示例:输入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]输出:[2,2,2,1,4,3,3,9,6,7,19]提示:arr1....
2020-08-20 19:58:02
311
原创 【Leetcode-算法】690.员工的重要性(C++)
690.员工的重要性给定一个保存员工信息的数据结构,它包含了员工唯一的id,重要度和 直系下属的id。比如,员工1是员工2的领导,员工2是员工3的领导。他们相应的重要度为15, 10, 5。那么员工1的数据结构是[1, 15, [2]],员工2的数据结构是[2, 10, [3]],员工3的数据结构是[3, 5, []]。注意虽然员工3也是员工1的一个下属,但是由于并不是直系下属,因此没有体现在员工1的数据结构中。现在输入一个公司的所有员工信息,以及单个员工id,返回这个员工和他所有下属的重要度之.
2020-08-20 16:14:16
170
原创 【Leetcode-算法】2.两数相加(C++)
2.两数相加给出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路: 注意两条链不...
2020-08-20 15:39:04
186
原创 【Leetcode-算法】1.两数之和(C/C++三种解法:暴力、双指针、哈希)
为了防止太久不写代码导致老年痴呆提前,立了个刷Leetcode的Flag,开篇blog记录一下写的时候思路、问题与解决方法。1.两数之和
2020-08-20 11:43:21
687
原创 Fortran入门 - 基本语法一篇通
0.前些日子为了准备汇报学了Fortran这个语言,最近又要用到发现有些些忘记了,所以写一篇博客整理记录学了些啥就当复习~主要内容还是比较基本的语法,一些小细节等以后有机会来补上吧(下次一定.jpg)1.固定格式&自由格式(图源自网络 侵删)简而言之:固定格式——比较老,老古董代码一般都是这种格式,需要读的时候能读懂就行,不用会写。 自由格式——目前的使用主流。2.输入输出入门一个语言从Helloworld开始!顺便熟悉一下Fortran的程序结构。..
2020-08-19 17:16:20
41622
10
原创 Fortran环境配置 - VS 2013+IVF 2013 SPI
安装VS20131.解压iso文件2.打开vs_ultimate.exe,一路next安装。(因为IVF必须装在C盘,而VS必须与IVF同一个盘,所以…默认路径)3.启动后,在帮助-注册软件中输入密钥【BWG7X-J98B3-W34RT-33B3R-JVYW9】,即可~4.vs环境变量。一些资源VS 2013 提取码:4k5wIVF 2013 SPI提取码:7m4yIVF license提取码:cjd6安装IVF2013 SPI1.解...
2020-06-03 16:30:18
12000
4
原创 记2019北航计算机夏令营体验~
个人情况2016级 西电 计科排名7.9%四六级469/432ACM CCPC铜,两个实用新型一个发明专利无论文今年北航夏令营只需要网上报名(材料发邮件),不需要邮寄,2019年5月28日-6月25日内报名即可,7月3日公布入营名单及安排。初审通过了598人(23直博+575硕士),今年报名人数多了很多,要求也高了不少,以我校为例,去年同专业入营排名到...
2019-08-29 10:41:59
2665
4
原创 【HDOJ1213】How Many Tables[并查集模板题]
第一次写博客~纪念一下开始学并查集啦,第一道AC(捂脸)#include #include #include int pre[1005];bool t[1005];int Find(int x){ int r=x; while(r!=pre[r]) r=pre[r]; int i=x,j
2017-05-11 17:15:48
143
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人