- 博客(12)
- 收藏
- 关注
原创 合并两个有序链表
链表有一个常用的方法为设置哨兵,这样可以很方便的解决边界问题。首先新建一个新的链表n1,赋值为-1,再创建一个新的链表list=n1,这样list就是哨兵,帮助n1读取两个链表中的数据并合并。最终返回n1.next就是合并后的有序链表。(链表的指向直接是内存,list.next=list1相当于list的下一个节点指向了list1的当前节点,后续.next也是list1的.next,直接是内存的变化,不是单纯数据的变化)新链表是通过拼接给定的两个链表的所有节点组成的。将两个升序链表合并为一个新的。
2024-04-10 11:06:03 621 1
原创 环形链表
给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从 0 开始)。pos。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回true。否则,返回false。true链表中有一个环,其尾部连接到第二个节点。true链表中有一个环,其尾部连接到第一个节点。false链表中没有环。-1。
2024-04-08 18:51:07 154 1
原创 0基础如何进入IT行业?
简介:对于没有任何相关背景知识的人来说,如何才能成功进入IT行业?是否有一些特定的方法或技巧可以帮助他们实现这一目标?对于没有任何相关背景知识的人来说,成功进入IT行业需要一定的策略和方法。
2024-04-07 09:28:13 477
原创 有效的括号
首先遍历数组得到每个字符,判断哈希表中是否存在该字符的键,若不存在,则存入栈顶;若存在,则判断栈是否为空,栈顶元素与哈希表中该键对应的值是否相同,如果都符合,移除栈顶元素。最终判断栈是否为空,全空为有效括号,有剩余说明不为有效括号。:用哈希表来存储所有的括号类型,右括号为键,左括号为值。用栈来存储每个括号对第一次出现的类型(左括号?题目有个隐含条件为如果为有效括号,则s中的左括号必然在右括号左边。,判断字符串是否有效。
2024-04-07 09:22:33 866
原创 存在重复元素2
看题解也发现了一个新思路---滑动窗口,就是把窗口固定为k+1的大小(这样哈希表中每个数据下标之间的查值最大为k),遍历数组,如果遍历到的数据超出哈希表范围就删除第一个插入的数据,存入遍历到的数据;如果遍历到的数据与哈希表中存在的数据有相同值,则返回true,如果遍历一轮后未找到相同数据,返回false。,判断数组中是否存在两个。一言不发,直接暴力!运行时间少了非常多。
2024-04-01 11:10:05 334
原创 快乐数(反正我很不快乐┗|`O′|┛)
第一眼就想着用递归,需要重新写一个方法来实现获取n的各个位数的平方和,递归的是这个方法,刚开始搞晕了直接饶了一大圈,然后利用哈希表记录每一次平方和的值(只需要记录键就行,值直接填个常量),如果值再次出现说明出现了死循环,直接false,最终当平方和==1时,return true;
2024-03-29 18:11:26 456 1
原创 有效的字母异位词
看了官方题解,发现可以优化一下,不用创建另一个哈希表,只需在第二次循环中,哈希表的key如果与t的字符相等就将对应的value值减一,就可以实现数据对比。提高了一点时间和空间利用率O(∩_∩)O。看见题目首先想到的就是双哈希表再遍历查值。通过了但是时间和空间消耗都很高。
2024-03-29 16:40:37 196 1
原创 面试题:String、StringBuffer、StringBuilder有什么区别?
String由final修饰,不可变,每次修改都会重新创建一个新的对象;StringBuffer和StringBuilder没有final修饰,是可变的,而且它两的方法也一样。在效率方面,由于StringBuilder没有同步锁,不用考虑锁的开销,所以StringBuilder比StringBuffer更快。在线程方面,StringBuffer加了同步锁,线程安全;StringBuilder没有加同步锁,线程不安全。
2024-03-28 19:29:45 136 1
原创 java面试题:请你说说String类,以及new string和使用字符串直接量的区别
String类被final修饰,所以不能被继承。创建String对象有两种方式,一种是使用字符串直接量,另一种是使用new关键字,当使用字符串直接量的方式来创建字符串时,JVM会使用常量池来管理这个字符串,当使用new关键字来创建字符串时,JVM会先使用常量池来管理字符串直接量,再调用String类的构造器来创建一个新的String对象,新创建的String对象会被保存在堆内存中。
2024-03-28 19:14:28 99 1
原创 单词规律.
/使用Integer不用int是因为Integer可以自动装箱,Integer的范围为【-128-127】,超出范围Integer会自动创建新的对象,但是map.put返回的value的对象是同一个Integer对象,不影响==判断。使用int超出范围就会报错。利用map的put方法特性————调用put方法时,如果已经存在一个相同的key, 则返回的是前一个key对应的value,同时该key的新value覆盖旧value,如果是新的一个key,则返回的是null。大大减少了空间和时间的利用。
2024-03-27 16:58:34 674
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人