算法OJ
数据结构训练、利用OJ解决实际问题
孤サ月
虚心接受任何指正、教导和批评(包括但不限于知识内容,覆盖范围等)
展开
-
数组中两个字符串的最小距离
输入包含有多行,第一输入一个整数n(1 ≤ n ≤ 10^5),代表数组strs的长度,第二行有两个字符串分别代表str1和str2,接下来n行,每行一个字符串,代表数组strs(保证题目中出现的所有字符串长度均小于等于10)给定一个字符串数组strs,再给定两个字符串str1和str2,返回在strs中str1和str2的最小距离,如果str1或str2为null,或不在strs中,返回-1。时间复杂度O(n),额外空间复杂度O(1)输出一行,包含一个整数,代表返回的值。解法一:暴力解法(这里不举例)原创 2024-05-08 15:53:55 · 299 阅读 · 0 评论 -
最小花费爬楼梯
给定一个整数数组 cost ,其中 cost[i]是从楼梯第 i 个台阶向上爬需要支付的费用,下标从0开始。一旦你支付此费用,即可选择向上爬一个或者两个台阶。数据范围:数组长度满足1 ≤ n ≤ 10^5,数组中的值满足1 ≤ cost[ i ] < 10^4。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。第一行输入一个正整数n,表示数组cost的长度。第二行输入n个正整数,表示数组cost的值。请你计算并返回达到楼梯顶部的最低花费。原创 2024-04-29 09:15:29 · 217 阅读 · 0 评论 -
快递费
如果正在寄快递,他了解到快递在 1kg 以内的按起步价20元计算,超出部分按每kg按1元计算,不足1kg部分按1kg计算。如果加急的话要额外付五元,请问总共要支付多少快递费。第一行输入一个单精度浮点数a和一个字符b,a表示牛牛要寄的快递的重量,b表示牛牛是否选择加急,"y’表示加急,'n’表示不加急。输出总共要支付的快递费用。原创 2024-04-28 09:08:46 · 325 阅读 · 0 评论 -
点击消除
如果想把字符串变得尽可能短,当点击了足够多次之后,字符串的最终形态是什么?对一个字符串,每次“点击”,可以把字符串中相邻两个 相同字母消除。一个字符串,为”点击消除“后的最终形态。若最终为空串,则输出0.一个字符串,仅由小写字母组成(字符串长度大于300000)但相同而不相邻、不相同的相邻字母都是不可以被消除的。例如,字符串"abbc"点击后可以生成"ac"。细节:用可变长的数组,来模拟栈结构。原创 2024-04-27 14:49:39 · 499 阅读 · 0 评论 -
数字统计
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21中出现1次,在数22中出现2次,所以数字2在该范围内一共出现了6次。** 一定要加,不然 i 的值随着第一次while循环的结束就变成了0,再次经过第二次for循环时,i++就变成了 0++,变成了1.示例2: 输入:2 100 输出:20。示例1: 输入:2 22 输出:6。输出共1行,表示数字2出现的次数。原创 2024-04-26 09:13:24 · 246 阅读 · 0 评论