• Java实现 LeetCode 817 链表组件(暴力)


    817. 链表组件

    给定一个链表(链表结点包含一个整型值)的头结点 head。

    同时给定列表 G,该列表是上述链表中整型值的一个子集。

    返回列表 G 中组件的个数,这里对组件的定义为:链表中一段最长连续结点的值(该值必须在列表 G 中)构成的集合。

    示例 1:

    输入:
    head: 0->1->2->3
    G = [0, 1, 3]
    输出: 2
    解释:
    链表中,0 和 1 是相连接的,且 G 中不包含 2,所以 [0, 1] 是 G 的一个组件,同理 [3] 也是一个组件,故返回 2。
    示例 2:

    输入:
    head: 0->1->2->3->4
    G = [0, 3, 1, 4]
    输出: 2
    解释:
    链表中,0 和 1 是相连接的,3 和 4 是相连接的,所以 [0, 1] 和 [3, 4] 是两个组件,故返回 2。
    注意:

    如果 N 是给定链表 head 的长度,1 <= N <= 10000。
    链表中每个结点的值所在范围为 [0, N - 1]。
    1 <= G.length <= 10000
    G 是链表中所有结点的值的一个子集.

    PS:
    可以用百度翻译看英文版,中文版少了一句话

    a linked list containing unique integer values
    一个包含唯一整数值的链表
    
    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
    class Solution {
          public int numComponents(ListNode head, int[] G) {
            Set<Integer>set = new HashSet<>();
            for(int i:G){
                set.add(i);
            }
            int res=0;
            boolean flag=true;//可以加一的时候是true
            while(head!=null){
                if(set.contains(head.val)){
                    if(flag){
                        flag=false;
                        res++;
                    }
                    head=head.next;
                }else{
                    if(!flag){
                        flag=true;
                        head=head.next;
                    }else{
                        head=head.next;
                    }
                }
            }
            return res;
        }
    }
    
  • 相关阅读:
    何为大数据
    开启新征程
    碰撞检测系统
    利用卷积自编码器对图片进行降噪
    Tensorflow实现稀疏自动编码(SAE)
    Linux主机定期打补丁修复漏洞
    值得研究的学问
    TensorFlow 安装教程
    早上收到这样一份通知,求一无漏洞框架,无力吐槽
    如何修改WAMP中mysql默认空密码 以及修改时报错的处理方法
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946079.html
Copyright © 2020-2023  润新知