环形链表_相交链表_多数元素(java语言)
环形链表
问题:



思路:创建hashset,把链表的每个节点放到集合中,在放入的过程中检查这个节点是否已经存在,存在则证明存在环。
代码实现:
public class Solution {
public boolean hasCycle(ListNode head) {
Set<ListNode> set = new HashSet<>();
while (head != null){
if (set.contains(head))
return true;
set.add(head);
head = head.next;
}
return false;
}
}
相交链表
问题:



思路:先把其中一个链表的结点都放到一个hashset中,然后检索hashset,看是否包含这个节点,如果包含,则证明这个节点就是开始相交的节点,输出答案。
代码实现:
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
Set<ListNode> set = new HashSet<>();
ListNode temp = headA;//头指针不方便移动,赋值给temp
while (temp != null){
set.add(temp);
temp = temp.next;
}
temp = headB;
while (temp != null){
if (set.contains(temp))//如果保护这个节点,则直接返回这个节点。
return temp;
temp = temp.next;
}
return null;
}
}
多数元素
问题:

思路:数组中元素出现的次数很容易让人想到hashmap,所以把数组中每个出现的数字以及它们出现的次数放入到hashmap,然后遍历hashmap,判断哪个数字出现的次数大于nums.length / 2,是的话就把这个数字输出。
代码实现:
class Solution {
public int majorityElement(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
//把数组中的每个数字和对应出现的次数存放到map中
for(Integer i : nums){
Integer count = map.get(i);
count = count == null ? 1 : ++count;
map.put(i,count);
}
//把数组中
for(Integer i : map.keySet()){
Integer count = map.get(i);
if (count > nums.length / 2)
return i;
}
return 0;
}
}
环形链表_相交链表_多数元素(java语言)的更多相关文章
- [Swift]LeetCode160. 相交链表 | Intersection of Two Linked Lists
Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...
- Python与数据结构[0] -> 链表/LinkedList[2] -> 链表有环与链表相交判断的 Python 实现
链表有环与链表相交判断的 Python 实现 目录 有环链表 相交链表 1 有环链表 判断链表是否有环可以参考链接, 有环链表主要包括以下几个问题(C语言描述): 判断环是否存在: 可以使用追赶方法, ...
- LeetCode 160——相交链表(JAVA)
编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 示例 1: 输入:intersectVal = 8, listA = [4,1,8,4,5], listB ...
- 判断闰年的方法以及如何获得单链表的倒数第K个元素
今天很悲催,心中向往的公司,打电话过来面试,问到我两个问题,结果竟然都没有回答上,伤心了,记录下今天失败,希望以后不要被同样的问题给PASS. 问题1.如何判断是否为闰年 所谓闰年那就是:四年一闰,百 ...
- [CareerCup] 2.2 Kth to Last Element of Linked List 链表的倒数第k个元素
2.2 Implement an algorithm to find the kth to last element of a singly linked list. 这道题让我们求链表中倒数第k个元 ...
- Interview----判断两个链表是否相交?
题目描述: 判断两个单链表是否相交?假设链表没有环. 假如链表有环呢? 1. 假如没有环 那么如果两个链表相交的话,必然最后的节点一定是同一个节点.所以只需要各自扫描一遍链表,找到最后一个节点,比较 ...
- 【LeetCode题解】160_相交链表
目录 160_相交链表 描述 解法一:哈希表 思路 Java 实现 Python 实现 解法二:双指针(推荐) 思路 Java 实现 Python 实现 160_相交链表 描述 编写一个程序,找到两个 ...
- 如何判断单链表是否存在环 & 判断两链表是否相交
给定一个单链表,只给出头指针h: 1.如何判断是否存在环? 2.如何知道环的长度? 3.如何找出环的连接点在哪里? 4.带环链表的长度是多少? 解法: 1.对于问题1,使用追赶的方法,设定两个指针sl ...
- [LC]141题 Linked List Cycle (环形链表)(链表)
①中文题目 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 ...
- LeetCode 160: 相交链表 Intersection of Two Linked Lists
爱写Bug(ID:iCodeBugs) 编写一个程序,找到两个单链表相交的起始节点. Write a program to find the node at which the intersectio ...
随机推荐
- maven远程debug
1.修改tomcat服务器配置 打开tomcat/bin/catalina.sh 添加参数 CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_soc ...
- 5vue 样式绑定
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 荔枝派Licheepi nano裸机移植ZLG_GUI和3D旋转立方体
一:前言 以前申请到了荔枝派zero,在发了两个开箱贴后就放在一边吃灰了.后来又购买了荔枝派nano,刷了几个教程中的系统之后又放到一边吃灰了.虽然有屯板子的习惯,却没有使用板子的能力. 后来,经过断 ...
- easy-rsa 不同版本克隆
1.克隆easy-rsa 并切换到2.0版本的分支 yum install -y git git clone https://github.com/OpenVPN/easy-rsa.git cd ea ...
- 小米盒子TV变装魔法
最近从一位台湾的朋友那里白嫖了一个 v2 节点, 恰好家里有一台家用的 小米盒子, 就寻思着能不能折腾一下, 共享上网 先将小米盒子开启adb调试, 参照这里: https://www.jb51.ne ...
- git练习网站(图形化版)
https://learngitbranching.js.org/?locale=zh_CN
- 转载C#加密方法
方法一: //须添加对System.Web的引用 using System.Web.Security; ... /// <summary> ...
- python打包成exe过程中遇到的问题
先描述下初始状况: python版本为3.7.3,直接在cmd中运行pip安装pyinstaller失败,应该是最开始安装python时没有把目录添加到环境变量中(我很懒).直接在python的安装目 ...
- vue 纵向滑动模块
代码 <template> <div> <!-- 左侧的滑动模块 --> <div class="scroll-box" :style=& ...
- pytest用例管理框架实战(基础篇)
先安装pip install pytest pytest用例管理框架 默认规则: 1.py文件必须以test_开头或者_test结尾 2.类名必须以test开头 3.测试用例必须以test_开头 ge ...