前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode刷题

leetcode刷题

原创
作者头像
用户10401116
发布2024-04-01 11:39:13
860
发布2024-04-01 11:39:13

对于双重循环的贪心算法改进:

  1. 一般题目中会有标志的数字,比如最大值,最小值,特殊值,然后就会省去一次循环的开销

数组

  1. Arrays.equals(char[],char[]) 可以比较两个字符数组是否相等 : 因为String,Collection重写了equals,但是char[] 没有重写
  2. 数字转字符串:`String s = Integer.toString(i),
代码语言:txt
复制
String s = String.valueOf(i), String s = i + "";`

字符串

  1. 字符串变数组,
代码语言:txt
复制
  - [ ] 用循环加上s.chatAt(i);
代码语言:txt
复制
  - [ ] s.toCharArray()变为字符数组 

哈希表(也叫散列表)

  1. 内部维护的一个26长度的字符数组 ,每个小写字符占一个小格,小格上面的数字就是每个字母出现的频数。

int[] table = new int26

代码语言:txt
复制
 for(int i = 0; i < table.length; i++){
代码语言:txt
复制
            table[s.charAt(i) - 'a']++ ;
代码语言:txt
复制
        }

HashMap

  1. 遍历添加的时候,如果存在valuejia+1的写法: map.getOrDefault(ch, 0) + 1;
  2. map中如果key存的是char类型,就要用包装类Character
  3. Key构成的集合是keySet(); values构成的集合是values();

链表

  1. pre = a.next和 a.next = pre : 首先pre = a.next 是把pre指向a.next ;a.next = pre是把a.next指向pre 总结:**指针指向类(出现next)是正着读,赋值类是反着读**
  2. 对于涉及到链表头的CRUD,做法是:**创建一个虚拟的头结点pre指向head,最后返回的是pre.next(也叫做哑节点),这个做法一般和快慢指针搭配使用**

  1. 二叉搜索树的解题方法就是遍历,对于左节点调用相同的遍历函数
  2. 对于要递归遍历比较两个树的节点来说,临界条件是先判断两个节点是否为空,在判断两个节点是否一个为空,最后判断两个结点的值是否相等,然后isSameTree(p.left, q.left) && isSameTree(p.right, q.right)递归
  3. 树的遍历
代码语言:txt
复制
 if(root.left != null || root.right != null ){
代码语言:txt
复制
        swap(root);
代码语言:txt
复制
    }
代码语言:txt
复制
    invertTree(root.left);
代码语言:txt
复制
    invertTree(root.right);
  1. 对于路径求和的题,可以用减法的思路,走过一个地方就减去val,然后带入减完新的值和根节点

递归

递归就是找重复性和临界条件

终止条件--->处理当前层逻辑----->递归到下一层------>(恢复当前层状态)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对于双重循环的贪心算法改进:
  • 数组
  • 字符串
  • 哈希表(也叫散列表)
  • HashMap
  • 链表
  • 递归
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档