day02_LettCode 两数相加 / 无重复字符的最长子串
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 两数相加 / 无重复字符的最长子串相关推荐
- 2022-6-13 全O(1)的数据结构,两数相加,无重复字符的最长子串,寻找两个正序数组的中位数,盛最多水的容器,......
1. 全 O(1) 的数据结构 Design a data structure to store the strings' count with the ability to return the s ...
- C# 算法题系列(一) 两数之和、无重复字符的最长子串
题目一 原题链接 https://leetcode-cn.com/problems/two-sum/ 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整 ...
- 汇编语言求无符号数组中出现的次数最多数_【今日最佳leecode通俗易懂】无重复字符的最长子串...
相信看了这个标题的同学,对这道题以已经非常不陌生了,就是leecode当中的第三题,之所以要单独的写一写主要对我来说,里面涉及到有一个滑动窗口, 散列表, 字符编码等知识点比较重要,也有几个小技巧,这 ...
- python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)
关注.在看,回复进群打卡 题目描述 题目描述: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为 ...
- php无重复字符的最长子串,PHP算法之无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc&qu ...
- 刻意练习:LeetCode实战 -- Task16. 无重复字符的最长子串
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
- 大二菜鸟———无重复字符的最长子串
这是一枚大二菜鸟的成长反思博客 终于忍不住,在这六月将之的一天开始写起了博客.数据结构计算机算法杂七杂八学了一堆但是都只是浅尝,觉得还是要写博客反刍学习到的知识. 感谢大佬 @Java3y 的 ...
- 无重复最长子串python_leetCode 无重复字符的最长子串 python(Longest Substring Without Repeating Characters) python...
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. Default 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &quo ...
- python学习3. 无重复字符的最长子串(滑动窗口)
makcooo 2019-04-19 15:47:32 271 收藏 分类专栏: python 版权 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: &quo ...
最新文章
- 使用Python和OpenCV检测图像中的条形码
- 面试高频题:单链表的逆置操作/链表逆序
- 《全球创新观察》研究报告3月刊下发布
- 是漏电,还是电磁辐射?
- C++程序设计【一】之 C++ 语言简介
- 5010.有限状态机-电梯事件
- one hot 编码的实现
- ubuntu安装配置ssmtp
- 《概率论与数理统计》(浙大第四版)第四章总结笔记(纯手写)
- Ubuntu 安装微信,网页版无法登陆
- Blend混合模式 与 20余种颜色混合模式代码实现
- TCP FIN_WAIT1状态的实验和验收
- jQuery之.each( function(index, Element) )
- Java web程序设计(笔记无参考价值)
- matplotlib.pyplot 库(一)
- python写情书_Python程序员用文字加密的方式,给女程序员写情书,一周后牵手回家_TONOW...
- 如何让安卓手机日历和Mac/iOS日历双向同步?
- 第三章:做一个简易登陆界面
- python基础(1) - ASCII码的转换及字母的大小写转化
- java 线性计算器_java版科学计算器,支持表达式计算
热门文章
- 常用的unicode编码图形
- 鸿蒙不替代安卓,华为鸿蒙2.0可以替代安卓吗,华为鸿蒙2.0优势在哪
- 使用”Succession插件”平刷使用方法教程
- C# 泛型约束 new() 的底层细节和性能
- DRS.Technologies.Orca3D.v1.4.20170915.X64犀牛船舶设计
- 【作业】WLAN无线
- 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等
- 给学生开了一场班会。
- 关于数据采集工作的一些感受
- 【C++】1085:球弹跳高度的计算(信息学奥赛)