高中教做网站的软件,中山企业集团网站建设,定南网站建设,全球采购随机更新.... 7004. 判别首字母缩略词
给你一个字符串数组 words 和一个字符串 s #xff0c;请你判断 s 是不是 words 的 首字母缩略词 。
如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s #xff0c;则认为 s 是 words 的首字母缩略词。例如#xff0c…随机更新.... 7004. 判别首字母缩略词
给你一个字符串数组 words 和一个字符串 s 请你判断 s 是不是 words 的 首字母缩略词 。
如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s 则认为 s 是 words 的首字母缩略词。例如ab 可以由 [apple, banana] 形成但是无法从 [bear, aardvark] 形成。
如果 s 是 words 的首字母缩略词返回 true 否则返回 false 。
示例 1
输入words [alice,bob,charlie], s abc
输出true
解释words 中 alice、bob 和 charlie 的第一个字符分别是 a、b 和 c。因此s abc 是首字母缩略词。 示例 2
输入words [an,apple], s a
输出false
解释words 中 an 和 apple 的第一个字符分别是 a 和 a。
串联这些字符形成的首字母缩略词是 aa 。
因此s a 不是首字母缩略词。示例 3
输入words [never,gonna,give,up,on,you], s ngguoy
输出true
解释串联数组 words 中每个字符串的第一个字符得到字符串 ngguoy 。
因此s ngguoy 是首字母缩略词。
简单题暴力获取下就行没啥好讲的直接看ac code吧。
class Solution {public boolean isAcronym(ListString words, String s) {int n words.size();if (n ! s.length()) {return false;}String tmp ;for (int i0;in;i) {tmp tmp words.get(i).charAt(0);}System.out.println(tmp);return tmp.equals(s);}
} 6450. k-avoiding 数组的最小总和
给你两个整数 n 和 k 。
对于一个由 不同 正整数组成的数组如果其中不存在任何求和等于 k 的不同元素对则称其为 k-avoiding 数组。
返回长度为 n 的 k-avoiding 数组的可能的最小总和。
示例 1
输入n 5, k 4
输出18
解释设若 k-avoiding 数组为 [1,2,4,5,6] 其元素总和为 18 。
可以证明不存在总和小于 18 的 k-avoiding 数组。示例 2
输入n 2, k 6
输出3
解释可以构造数组 [1,2] 其元素总和为 3 。
可以证明不存在总和小于 3 的 k-avoiding 数组。 提示
1 n, k 50
思路
题目看上去很简单有个重点就是我标红的那句话不同元素对。那么就可以理解为不存在abk的情况并且需要返回长度等于n的最小总和肯定就是从1开始往上递增的来取换句话说 不就是取abk加数最小的那个不就好了。
还存在实例1的情况取到比k还大的值既然都比k大了那么肯定无论如何都不会存在元素对等于k的了。
想清楚之后那么就可以遍历模拟一遍过程即可。
ac code
class Solution {public int minimumSum(int n, int k) {int cnt 0;int ans 0;int ind 1;while (cnt n ind k) {if (k - ind ind) {ans ind;cnt 1;} ind 1;}// 大于了k就随便取了while (cnt n) {ans ind;ind;cnt;}return ans;}
}
6467. 找出最长等值子数组
给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。
如果子数组中所有元素都相等则认为子数组是一个 等值子数组 。注意空数组是 等值子数组 。
从 nums 中删除最多 k 个元素后返回可能的最长等值子数组的长度。
子数组 是数组中一个连续且可能为空的元素序列。
示例 1
输入nums [1,3,2,3,1,3], k 3
输出3
解释最优的方案是删除下标 2 和下标 4 的元素。
删除后nums 等于 [1, 3, 3, 3] 。
最长等值子数组从 i 1 开始到 j 3 结束长度等于 3 。
可以证明无法创建更长的等值子数组。示例 2
输入nums [1,1,2,2,1,1], k 2
输出4
解释最优的方案是删除下标 2 和下标 3 的元素。
删除后nums 等于 [1, 1, 1, 1] 。
数组自身就是等值子数组长度等于 4 。
可以证明无法创建更长的等值子数组。提示
1 nums.length 1051 nums[i] nums.length0 k nums.length
思路
有两种解法可以考虑用到同向双指针或者是用滑动窗口。
1、同向双指针需要将每个元素的下标进行标记对于每种相同的元素进行遍历需要判断right - left 的下标是不是超过了k如果超过了k表示right和left区间内这种元素需要删除的数太多了。然后以此类推将每种元素都遍历一遍维护一个最大的ans即可。看官们大概理解理解吧...
2、滑动窗口的想法其实类似只不过是需要维护一个hash mapmap中存放的是窗口内元素的数量key是元素值value是对应元素的个数。然后ans就是map中最大的cnt值。
方法2的ac code方法1没写出来...
class Solution {public int longestEqualSubarray(ListInteger nums, int k) {int left 0;int cnt 0;int ans 0;HashMapInteger, Integer mp new HashMapInteger,Integer();for (int right 0; right nums.size(); right) {int cur nums.get(right);mp.put(cur, mp.getOrDefault(cur, 0) 1);cnt Math.max(cnt, mp.get(cur));//取窗口内最大的元素的个数while (right - left 1 - cnt k) {mp.put(nums.get(left), mp.get(nums.get(left)) - 1);left;}ans Math.max(ans, cnt); // 这里不是right-left1}return ans;}
}
7006. 销售利润最大化
给你一个整数 n 表示数轴上的房屋数量编号从 0 到 n - 1 。
另给你一个二维整数数组 offers 其中 offers[i] [starti, endi, goldi] 表示第 i 个买家想要以 goldi 枚金币的价格购买从 starti 到 endi 的所有房屋。
作为一名销售你需要有策略地选择并销售房屋使自己的收入最大化。
返回你可以赚取的金币的最大数目。
注意 同一所房屋不能卖给不同的买家并且允许保留一些房屋不进行出售。
示例 1
输入n 5, offers [[0,0,1],[0,2,2],[1,3,2]]
输出3
解释
有 5 所房屋编号从 0 到 4 共有 3 个购买要约。
将位于 [0,0] 范围内的房屋以 1 金币的价格出售给第 1 位买家并将位于 [1,3] 范围内的房屋以 2 金币的价格出售给第 3 位买家。
可以证明我们最多只能获得 3 枚金币。
示例 2
输入n 5, offers [[0,0,1],[0,2,10],[1,3,2]]
输出10
解释有 5 所房屋编号从 0 到 4 共有 3 个购买要约。
将位于 [0,2] 范围内的房屋以 10 金币的价格出售给第 2 位买家。
可以证明我们最多只能获得 10 枚金币。提示
1 n 1051 offers.length 105offers[i].length 30 starti endi n - 11 goldi 103
我菜了没想出来各位直接看题解吧....
力扣LeetCode官网 - 全球极客挚爱的技术成长平台
class Solution {public int maximizeTheProfit(int n, ListListInteger offers) {Listint[][] groups new ArrayList[n];Arrays.setAll(groups, e - new ArrayList());for (var offer : offers)groups[offer.get(1)].add(new int[]{offer.get(0), offer.get(2)});var f new int[n 1];for (int end 0; end n; end) {f[end 1] f[end];for (var p : groups[end])f[end 1] Math.max(f[end 1], f[p[0]] p[1]);}return f[n];}
}作者灵茶山艾府
链接https://leetcode.cn/problems/maximize-the-profit-as-the-salesman/solutions/2396402/xian-xing-dpfu-xiang-si-ti-mu-pythonjava-wmh7/
来源力扣LeetCode
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。