力扣
沐叶清风z
这个作者很懒,什么都没留下…
展开
-
1544. 整理字符串
题目 一个整理好的字符串中,两个相邻字符 s[i] 和 s[i+1],其中 0<= i <= s.length-2 ,要满足如下条件: 若 s[i] 是小写字符,则 s[i+1] 不可以是相同的大写字符。 若 s[i] 是大写字符,则 s[i+1] 不可以是相同的小写字符。 请你将字符串整理好,每次你都可以从字符串中选出满足上述条件的 两个相邻 字符并删除,直到字符串整理好为止。 请返回整理好的 字符串 。题目保证在给出的约束条件下,测试样例对应的答案是唯一的。 注意:空字符串也属于整理原创 2021-05-09 21:31:39 · 169 阅读 · 0 评论 -
1598. 文件夹操作日志搜集器
题目描述 下面给出对变更操作的说明: "../" :移动到当前文件夹的父文件夹。如果已经在主文件夹下,则 继续停留在当前文件夹 。 "./" :继续停留在当前文件夹。 "x/" :移动到名为 x 的子文件夹中。题目数据 保证总是存在文件夹 x 。 给你一个字符串列表 logs ,其中 logs[i] 是用户在 ith 步执行的操作。 文件系统启动时位于主文件夹,然后执行 logs 中的操作。 执行完所有变更文件夹操作后,请你找出 返回主文件夹所需的最小步数 测试用例 1 输入:logs.原创 2021-05-07 21:15:21 · 99 阅读 · 0 评论 -
447. 回旋镖的数量
结题思路 用哈希表记录每个点到其他点的距离,每个距离相同的点个数为val 外层的for循环遍历所有点,作为回旋镖的第一个点,内层循环遍历所有点,计算回旋镖的第一个点和其他点的距离,并记录到哈希表中 遍历哈希表,从val个距离相同的点中选2个点,作为回旋镖的后两个点,共有val* (val - 1)种情况 代码 class Solution { public int numberOfBoomerangs(int[][] points) { int res=0; ...原创 2021-05-06 18:08:01 · 84 阅读 · 0 评论 -
有效的数独
题目 代码 class Solution { public boolean isValidSudoku(char[][] board) { boolean flag=true; HashMap<Character,Character> map =new HashMap<Character,Character>(); for(int i=0;i<board.length;i++){ for(.原创 2021-04-30 14:01:32 · 57 阅读 · 0 评论 -
单词频率
题目 连着刷了好几天的hashmap,终于是有点起色,力扣中等题目,10分钟写完,哈哈哈哈 class WordsFrequency { private HashMap<String,Integer> map = new HashMap<String,Integer>() ; public WordsFrequency(String[] book) { for(String s:book){ if(map.contain.原创 2021-04-28 16:38:45 · 97 阅读 · 0 评论 -
剑指 Offer 48. 最长不含重复字符的子字符串
方法一:动态规划 + 哈希表 1. 哈希表统计: 遍历字符串 ss 时,使用哈希表(记为 dicdic )统计 各字符最后一次出现的索引位置 。 左边界 ii 获取方式: 遍历到 s[j]s[j] 时,可通过访问哈希表 dic[s[j]]dic[s[j]] 获取最近的相同字符的索引 ii 。 2. 复杂度分析: 时间复杂度 O(N)O(N) : 其中 NN 为字符串长度,动态规划需遍历计算 dpdp 列表。 空间复杂度 O(1)O(1) : 字符的 ASCII 码范围为 00 ~ 127127 ,哈希表原创 2021-04-27 13:31:08 · 102 阅读 · 0 评论 -
剑指 Offer 50. 第一个只出现一次的字符
剑指 Offer 50. 第一个只出现一次的字符 描述 在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。 第一次自己尝试,无脑双重循环,憨的一批 public char firstUniqChar(String s) { int cout=0; // 拿出一个比较的字符 for(int i=0;i<s.length();i++){ //依次每个遍历,如何重合 cout++原创 2021-04-26 19:54:23 · 74 阅读 · 0 评论 -
希尔排序
动画演示 文字说明 代码 /** * 希尔排序 * * @param nums * @return */ public static int[] paiXu2(int[] nums) { int temp = 0; // 控制希尔排序的增量 for (int i = nums.length / 2; i > 0; i = i / 2) { //根据增量序列,找到每组比较序列的最后一.原创 2021-04-26 08:41:29 · 50 阅读 · 0 评论 -
插入排序
插入排序 代码 /** * 插入排序 * @param nums * @return */ public static int[] paiXu1(int[] nums){ for (int i=0;i<nums.length-1;i++){ int j=i; int temp=0; while (nums[j+1]<nums[j]){ .原创 2021-04-25 20:50:01 · 47 阅读 · 0 评论 -
290. 单词规律
题目描述 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例 思路 通过创建两个HashMap Map<Character,String> map=new HashMap(); Map<String,Character> map1=new HashMap(); 去循环一个初始的字符数组,比较两个.原创 2021-04-25 18:34:35 · 59 阅读 · 0 评论