每日一题
Day1
最长和谐子序列(594)- class Solution {
- public int findLHS(int[] nums) {
- Arrays.sort(nums);
- int lef = 0;
- int res = 0;
- for (int rig = 0; rig < nums.length; rig++){
- while(nums[rig] - nums[lef] > 1) lef++;
- if (nums[rig] - nums[lef] == 1) res = Math.max(res, rig -lef + 1);
- }
- return res;
- }
- }
复制代码 先对序列进行排序,通过双指针维护序列 时间复杂度 O(nlogn + n)
后来想了一下,长度其实就是 sum(num) + sum(num+1),可以通过Hash解决
Day2
找到初始输入字符串I(3330)- class Solution {
- public int possibleStringCount(String word) {
- int res = 0;
- char curr = word.charAt(0);
- for (char c : word.toCharArray()){
- if (curr == c) res++;
- curr = c;
- }
- return res;
- }
- }
复制代码 很简单,就是全排列
每一个多输入的字符都可能是输错了
Day3
失败了
找到初始输入字符串II(3333)
我本来想的是排列组合嘛,踩坑了。重复的情况没有减掉,处理重复的情况太麻烦
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |