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); // 轉(zhuǎn)存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; } }
- 時(shí)間復(fù)雜度:O(n),遍歷整個(gè)鏈表
- 空間復(fù)雜度:O(n),轉(zhuǎn)存nums
C++
class Solution { public: int numComponents(ListNode* head, vector<int>& nums) { int res = 0; unordered_set<int> set(nums.begin(), nums.end()); // 轉(zhuǎn)存nums while (head) { if (set.count(head->val)) { while (head && set.count(head->val)) head = head->next; res++; } else { head = head->next; } } return res; } };
- 時(shí)間復(fù)雜度:O(n),遍歷整個(gè)鏈表
- 空間復(fù)雜度:O(n),轉(zhuǎ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; // 是否處于同一個(gè)組件 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 } }
- 時(shí)間復(fù)雜度:O(n),遍歷整個(gè)鏈表
- 空間復(fù)雜度:O(n),轉(zhuǎn)存nums
總結(jié)
簡單模擬題,沒想到轉(zhuǎn)存用哈希表的內(nèi)置函數(shù),還想著要排序方便查找……對于消耗空間的方法總是不太敏感。
以上就是Java C++題解leetcode817鏈表組件示例的詳細(xì)內(nèi)容,更多關(guān)于Java C++題解鏈表組件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
使用ElasticSearch6.0快速實(shí)現(xiàn)全文搜索功能的示例代碼
本篇文章主要介紹了使用ElasticSearch6.0快速實(shí)現(xiàn)全文搜索功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02IDEA報(bào)錯(cuò):Process terminated的問題及解決
這篇文章主要介紹了IDEA報(bào)錯(cuò):Process terminated的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Java中冒泡排序的原生實(shí)現(xiàn)方法(正序與逆序)
這篇文章主要給大家介紹了關(guān)于Java中冒泡排序的原生實(shí)現(xiàn)方法(正序與逆序)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11java自定義注解實(shí)現(xiàn)前后臺參數(shù)校驗(yàn)的實(shí)例
下面小編就為大家?guī)硪黄猨ava自定義注解實(shí)現(xiàn)前后臺參數(shù)校驗(yàn)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證
本篇文章主要介紹了JavaWeb使用Session和Cookie實(shí)現(xiàn)登錄認(rèn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控
線程池的監(jiān)控很重要,本文就來介紹一下Springboot實(shí)現(xiàn)多線程及線程池監(jiān)控,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01