当前位置: 首页 > news >正文

leetcode热题100刷题计划

题目3

无重复字符的最长子串

思路

滑动窗口,设定当前窗口左侧为i,右侧为right,当到达右侧边界时,记录长度,
然后删掉最左侧的字符,即i+1;right则继续向后搜。

代码

public int lengthOfLongestSubstring(String s) {// 哈希集合,记录每个字符是否出现过Set<Character> occ = new HashSet<Character>();int n = s.length();// 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动int rk = -1, ans = 0;for (int i = 0; i < n; ++i) {if (i != 0) {// 左指针向右移动一格,移除一个字符occ.remove(s.charAt(i - 1));}while (rk + 1 < n && !occ.contains(s.charAt(rk + 1))) {// 不断地移动右指针occ.add(s.charAt(rk + 1));++rk;}// 第 i 到 rk 个字符是一个极长的无重复字符子串ans = Math.max(ans, rk - i + 1);}return ans;}

题目128

最长连续序列

思路

  1. 先把序列遍历到set当中
  2. 设以k为起点的序列,如果有k+1,k+2存在,则直接长度响应增加。
  3. 为了防止重复记录,如果有k-1存在,则条件2必然满足;所以只有在k-1不存在时,才会去执行2条件

代码

public int longestConsecutive(int[] nums) {Set<Integer> numset=new HashSet<Integer>();for(int num:nums){numset.add(num);}int longestStreak=0;for(int num:nums){if(!numset.contains(num-1)){int current=num;int curlength=1;while(numset.contains(current+1)){current++;curlength++;}longestStreak=Math.max(longestStreak,curlength);}}return longestStreak;}

题目102

二叉树的层次遍历

思路

使用队列。同层结点会一起输出。每次循环时,把队列里的所有元素出队并且把各自的孩子结点进队,如此这般就是一层一层的层次遍历。

代码


class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> result=new LinkedList<>();Queue<TreeNode> queue=new LinkedList<>();if(root==null){return result;}queue.add(root);while(!queue.isEmpty()){int size=queue.size();List<Integer> temp=new LinkedList<>();//全部出队,保证这层全部输出while(size>0){TreeNode t=queue.poll();temp.add(t.val);if(t.left!=null)queue.add(t.left);if(t.right!=null)queue.add(t.right);size--;}result.add(temp);}return result;}
}

相关文章:

  • Dgraph 入门教程四(开发环境的搭建)
  • 力扣面试经典150 —— 6-10题
  • python异常机制
  • YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
  • 骨传导耳机怎么挑选?资深测评师一文教你搞定怎么选!
  • 外包干了8天,技术退步明显。。。。。
  • 网络编程套接字(2)——Socket套接字
  • IP传输方式——组播
  • #14vue3生成表单并跳转到外部地址的方式
  • 数据结构从入门到精通——链表
  • centos7 python3.12.1 报错 No module named _ssl
  • 【2024.03.05】定时执行专家 V7.1 发布 - TimingExecutor V7.1 Release
  • UE4 Niagara 关卡3.4官方案例解析
  • 活动预告|听云猿生数据创始人 CEO 曹伟分享云数据库行业十余年经验总结
  • 这个超火的黑客小工具,可以通过WiFi解锁特斯拉
  • 「面试题」如何实现一个圣杯布局?
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 【知识碎片】第三方登录弹窗效果
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Angularjs之国际化
  • CSS居中完全指南——构建CSS居中决策树
  • CSS实用技巧干货
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • Git 使用集
  • Golang-长连接-状态推送
  • MobX
  • nginx 配置多 域名 + 多 https
  • python_bomb----数据类型总结
  • react 代码优化(一) ——事件处理
  • Redis学习笔记 - pipline(流水线、管道)
  • vue中实现单选
  • windows-nginx-https-本地配置
  • 服务器从安装到部署全过程(二)
  • 工作中总结前端开发流程--vue项目
  • 诡异!React stopPropagation失灵
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 树莓派 - 使用须知
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 走向全栈之MongoDB的使用
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C#)获取字符编码的类
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (南京观海微电子)——COF介绍
  • (学习日记)2024.02.29:UCOSIII第二节
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]