day02

  • 2. 两数相加
  • 3. 无重复字符的最长子串

2. 两数相加

给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。

您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例:

输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)
输出:7 -> 0 -> 8
原因:342 + 465 = 807

解:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) { //l1,l2为表头,从数字的高位开始ListNode dummyHead =new ListNode(0);//实例化,初始化为0,也可写5,-100等ListNode p=l1, q=l2, curr=dummyHead;//记录结果的链表currint carry=0;//进位carrywhile(p!=null || q!=null){int x=(p!=null)?p.val:0;//x记载p指向的l1中的节点的值int y=(q!=null)?q.val:0;int sum=carry+x+y;carry=sum/10; //只取十位上的数curr.next=new ListNode(sum%10);curr = curr.next;if(p!=null) p=p.next;if(q!=null) q=q.next;}if (carry>0){curr.next=new ListNode(carry);}return dummyHead.next;}
}

参考内容:

3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:
输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

示例 2:
输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

示例 3:
输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

还是滑动窗口吧,下面那个方法我不知道咋错了

class Solution {//滑动窗口public int lengthOfLongestSubstring(String s) {int n=s.length();Set<Character>set =new HashSet<>();int ans=0,i=0,j=0;while(i<n && j<n){if(!set.contains(s.charAt(j))){set.add(s.charAt(j++));ans=Math.max(ans,j-i);}else{set.remove(s.charAt(i++));}}return ans;}
}

复杂度分析:
时间复杂度:O(2n) = O(n)O(2n)=O(n),在最糟糕的情况下,每个字符将被 ii 和 jj 访问两次。
空间复杂度:O(min(m, n))O(min(m,n)),与之前的方法相同。滑动窗口法需要 O(k)O(k) 的空间,其中 kk 表示 Set 的大小。而 Set 的大小取决于字符串 nn 的大小以及字符集 / 字母 mm 的大小。

此方法通过不了测试用例 “ ”

class Solution {public int lengthOfLongestSubstring(String s) {//方法一:暴力法,逐个检查所有“子串”(注意题目要求,不是给出子序列,给出的必须是连在一起的),看是否有不重复的字符//两个循环,一个i从开始到结束,另一个j从i+1到结束,相当于枚举所有子串//set来判断是否重复int n=s.length();//length是一个方法不是属性int ans=0;for(int i=0;i<n;i++){for(int j=0;j<n;j++){   if(allUnique(s,i,j))//如果添加成功,返回此处ans=Math.max(ans,j-i);//此时j-i为当前成功的子串的长度,ans为上一次得到的子串长度,取最长不断更新}}return ans;//返回的是子字符串的长度}public boolean allUnique(String s,int start,int end){Set<Character> set=new HashSet<>();for(int i=start;i<end;i++){Character ch =s.charAt(i);//charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length()-1if(set.contains(ch)) //有重复字符,set返回1,则该处应返回错误,退出此循环,即这个子串不成立return false;set.add(ch);//没有重复字符(if返回-1即不进行if内的判断),即可将其加入set队列中}return true;}
}

day02_LettCode 两数相加 / 无重复字符的最长子串相关推荐

  1. 2022-6-13 全O(1)的数据结构,两数相加,无重复字符的最长子串,寻找两个正序数组的中位数,盛最多水的容器,......

    1. 全 O(1) 的数据结构 Design a data structure to store the strings' count with the ability to return the s ...

  2. C# 算法题系列(一) 两数之和、无重复字符的最长子串

    题目一 原题链接 https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整 ...

  3. 汇编语言求无符号数组中出现的次数最多数_【今日最佳leecode通俗易懂】无重复字符的最长子串...

    相信看了这个标题的同学,对这道题以已经非常不陌生了,就是leecode当中的第三题,之所以要单独的写一写主要对我来说,里面涉及到有一个滑动窗口, 散列表, 字符编码等知识点比较重要,也有几个小技巧,这 ...

  4. python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)

    关注.在看,回复进群打卡 题目描述 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为 ...

  5. php无重复字符的最长子串,PHP算法之无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...

  6. 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串

    背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...

  7. 大二菜鸟———无重复字符的最长子串

    这是一枚大二菜鸟的成长反思博客   终于忍不住,在这六月将之的一天开始写起了博客.数据结构计算机算法杂七杂八学了一堆但是都只是浅尝,觉得还是要写博客反刍学习到的知识.   感谢大佬 @Java3y 的 ...

  8. 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Default 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...

  9. python学习3. 无重复字符的最长子串(滑动窗口)

    makcooo 2019-04-19 15:47:32  271  收藏 分类专栏: python 版权 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: &quo ...

最新文章

  1. 使用Python和OpenCV检测图像中的条形码
  2. 面试高频题:单链表的逆置操作/链表逆序
  3. 《全球创新观察》研究报告3月刊下发布
  4. 是漏电,还是电磁辐射?
  5. C++程序设计【一】之 C++ 语言简介
  6. 5010.有限状态机-电梯事件
  7. one hot 编码的实现
  8. ubuntu安装配置ssmtp
  9. 《概率论与数理统计》(浙大第四版)第四章总结笔记(纯手写)
  10. Ubuntu 安装微信,网页版无法登陆
  11. Blend混合模式 与 20余种颜色混合模式代码实现
  12. TCP FIN_WAIT1状态的实验和验收
  13. jQuery之.each( function(index, Element) )
  14. Java web程序设计(笔记无参考价值)
  15. matplotlib.pyplot 库(一)
  16. python写情书_Python程序员用文字加密的方式,给女程序员写情书,一周后牵手回家_TONOW...
  17. 如何让安卓手机日历和Mac/iOS日历双向同步?
  18. 第三章:做一个简易登陆界面
  19. python基础(1) - ASCII码的转换及字母的大小写转化
  20. java 线性计算器_java版科学计算器,支持表达式计算

热门文章

  1. 常用的unicode编码图形
  2. 鸿蒙不替代安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
  3. 使用”Succession插件”平刷使用方法教程
  4. C# 泛型约束 new() 的底层细节和性能
  5. DRS.Technologies.Orca3D.v1.4.20170915.X64犀牛船舶设计
  6. 【作业】WLAN无线
  7. 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等
  8. 给学生开了一场班会。
  9. 关于数据采集工作的一些感受
  10. 【C++】1085:球弹跳高度的计算(信息学奥赛)