欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?C++題解leetcode817鏈表組件示例

 更新時間:2022年10月12日 15:11:56   作者:AnjaVon  
這篇文章主要為大家介紹了Java?C++題解leetcode817鏈表組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

題目要求

思路:模擬

Java

class Solution {
    public int numComponents(ListNode head, int[] nums) {
        int res = 0;
        Set<Integer> set = new HashSet<>();
        for (int x : nums)
            set.add(x); // 轉存nums
        while (head != null) {
            if (set.contains(head.val)) {
                while (head != null && set.contains(head.val))
                    head = head.next;
                res++;
            }
            else {
                head = head.next;
            }
        }
        return res;
    }
}
  • 時間復雜度:O(n),遍歷整個鏈表
  • 空間復雜度:O(n),轉存nums

C++

class Solution {
public:
    int numComponents(ListNode* head, vector<int>& nums) {
        int res = 0;
        unordered_set<int> set(nums.begin(), nums.end()); // 轉存nums
        while (head) {
            if (set.count(head->val)) {
                while (head && set.count(head->val))
                    head = head->next;
                res++;
            }
            else {
                head = head->next;
            }
        }
        return res;
    }
};
  • 時間復雜度:O(n),遍歷整個鏈表
  • 空間復雜度:O(n),轉存nums

Rust

use std::collections::HashSet;
impl Solution {
    pub fn num_components(mut head: Option<Box<ListNode>>, nums: Vec<i32>) -> i32 {
        let mut head = head.as_ref();
        let mut res = 0;
        let mut status = false; // 是否處于同一個組件
        while let Some(node) = head {
            if nums.contains(&node.val) {
                if !status {
                    res += 1;
                    status = true;
                }
            } else {
                status = false;
            }
            head = node.next.as_ref();
        }
        res
    }
}
  • 時間復雜度:O(n),遍歷整個鏈表
  • 空間復雜度:O(n),轉存nums

總結

簡單模擬題,沒想到轉存用哈希表的內(nèi)置函數(shù),還想著要排序方便查找……對于消耗空間的方法總是不太敏感。

以上就是Java C++題解leetcode817鏈表組件示例的詳細內(nèi)容,更多關于Java C++題解鏈表組件的資料請關注腳本之家其它相關文章!

相關文章

  • 使用ElasticSearch6.0快速實現(xiàn)全文搜索功能的示例代碼

    使用ElasticSearch6.0快速實現(xiàn)全文搜索功能的示例代碼

    本篇文章主要介紹了使用ElasticSearch6.0快速實現(xiàn)全文搜索功能,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • IDEA報錯:Process terminated的問題及解決

    IDEA報錯:Process terminated的問題及解決

    這篇文章主要介紹了IDEA報錯:Process terminated的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解SpringBoot如何自定義Starter

    詳解SpringBoot如何自定義Starter

    Starter是Spring Boot中的一個非常重要的概念,Starter相當于模塊,它能將模塊所需的依賴整合起來并對模塊內(nèi)的Bean根據(jù)環(huán)境( 條件)進行自動配置。本文將介紹SpringBoot如何自定義Starter,感興趣的可以學習一下
    2021-12-12
  • JAVA操作elastic?search的詳細過程

    JAVA操作elastic?search的詳細過程

    Elasticsearch?Rest?High?Level?Client?是?Elasticsearch?官方提供的一個?Java?客戶端庫,用于與?Elasticsearch?進行交互,本文介紹JAVA操作elastic?search的詳細過程,感興趣的朋友一起看看吧
    2024-08-08
  • Java中冒泡排序的原生實現(xiàn)方法(正序與逆序)

    Java中冒泡排序的原生實現(xiàn)方法(正序與逆序)

    這篇文章主要給大家介紹了關于Java中冒泡排序的原生實現(xiàn)方法(正序與逆序)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • java自定義注解實現(xiàn)前后臺參數(shù)校驗的實例

    java自定義注解實現(xiàn)前后臺參數(shù)校驗的實例

    下面小編就為大家?guī)硪黄猨ava自定義注解實現(xiàn)前后臺參數(shù)校驗的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • JavaWeb使用Session和Cookie實現(xiàn)登錄認證

    JavaWeb使用Session和Cookie實現(xiàn)登錄認證

    本篇文章主要介紹了JavaWeb使用Session和Cookie實現(xiàn)登錄認證,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Java中RedissonClient基本使用指南

    Java中RedissonClient基本使用指南

    RedissonClient 是一個強大的 Redis 客戶端,提供了豐富的功能和簡單的 API,本文就來介紹一下Java中RedissonClient基本使用指南,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Springboot實現(xiàn)多線程及線程池監(jiān)控

    Springboot實現(xiàn)多線程及線程池監(jiān)控

    線程池的監(jiān)控很重要,本文就來介紹一下Springboot實現(xiàn)多線程及線程池監(jiān)控,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • IDEA常量字符串過長問題及解決方案

    IDEA常量字符串過長問題及解決方案

    在編譯Java項目時遇到“常量字符串過長”錯誤,可以通過修改編譯器設置解決,具體方法是進入IDE的設置(File>>Settings>>Build, Execution, Deployment>>Compiler>>Java Compiler),將使用的編譯器更改為Eclipse,如果問題依舊
    2024-10-10

最新評論