php 兩個數組 交集_兩個數組的交集

給定兩個數組,編寫一個函數來計算它們的交集。

示例1:

輸入:nums1 = [1,2,2,1], nums2 = [2,2]輸出:[2,2]

示例2:

輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]輸出:[4,9]
  • 說明:

輸出結果中每個元素出現的次數,應與元素在兩個數組中出現次數的最小值一致。

我們可以不考慮輸出結果的順序。

  • 進階:

如果給定的數組已經排好序呢?你將如何優化你的算法?

如果 nums1 的大小比 nums2 小很多,哪種方法更優?

如果 nums2 的元素存儲在磁盤上,內存是有限的,并且你不能一次加載所有的元素到內存中,你該怎么辦?

題解分析:

首先,我們可以確定,要是數組本身是有序的,很快就可以得出數組的交集是什么

那么我們就先對數組進行排序。然后通過雙指針遍歷兩個數組

在開始遍歷的時候,兩個指針都位于初始位置,然后往右移動指針

1、當兩個指針的數據不相等時,則較小數據的指針向右移動

2、當兩個數據相等時,則添加數據到結果集中,并且將兩個指針都向右移動

3、當其中一個指針超出界限時,則遍歷結束

class Solution {public int[] intersect(int[] nums1, int[] nums2) {Arrays.sort(nums1);Arrays.sort(nums2);int length1 = nums1.length, length2 = nums2.length;int[] intersection = new int[Math.min(length1, length2)];int index1 = 0, index2 = 0, index = 0;while (index1 < length1 && index2 < length2) {if (nums1[index1] < nums2[index2]) {index1++;} else if (nums1[index1] > nums2[index2]) {index2++;} else {intersection[index] = nums1[index1];index1++;index2++;index++;}}return Arrays.copyOfRange(intersection, 0, index);}
}

執行結果:

4487c9417d6523717658885045fdea5f.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/529572.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/529572.shtml
英文地址,請注明出處:http://en.pswp.cn/news/529572.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

11純代碼 oc xcode_iOS代碼染色原理及技術實踐

背景隨著業務的迅速發展&#xff0c;業務代碼邏輯的復雜度增加。QA測試的質量對于產品上線后的穩定性更加重要。一般QA測試的工作流程分為兩大項&#xff1a;自動化測試和人工測試。這兩種測試后都需要得到代碼覆蓋率。自動化測試的覆蓋率&#xff0c;在雙端都有比較成熟的方案…

刪除了幾個月的照片能找回么_手機刪除照片怎么恢復正常?自動修復,一看就會...

手機刪除照片怎么恢復正常&#xff1f;都說魚的記憶只有七秒鐘&#xff0c;那你的記憶是多久呢&#xff1f;曾經手機拍照留念的照片&#xff0c;是否由于一些微不足道的事情&#xff0c;沖動之下刪掉了!想要還原刪除掉的手機照片&#xff0c;首先要找對照片恢復器&#xff1a;手…

并發測試mysql_Jmeter性能測試系列——結果分析與報告輸出

場景運行結束后&#xff0c;需針對測試結果進行性能分析。通常而言&#xff0c;Jmeter性能測試結果分析可從性能測試指標達成方面著手&#xff0c;然后再分析測試過程中出現的異常情況&#xff0c;逐一判斷是否存在性能風險。1.用戶登陸并發測試結果分析獲取測試指標提取階段獲…

怎樣取消連續包月自動續費_蘋果手機連續包月會員怎么取消 設置iPhone解除應用自動續費...

[閩南網]相信我們都有在用蘋果手機下載軟件&#xff0c;但是有時候一個不小心就被開通了包月續費&#xff0c;這個的話會長期進行扣費&#xff0c;要是不想開通的話可以進行取消&#xff0c;不知道的話可以查看下面的教程。取消收費項目是可以從電腦端和手機端兩個渠道來進行&a…

oracle 空閑連接數_oracle數據庫空閑連接

RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available在使用rman duplicate復制standby數據庫的時候&#xff0c;由于standby數據庫實例必須處于非mount狀態&#xff0c;所以主數據庫直接連接是會報錯的&#xff0c;需要在standby數據庫服務上的監聽器…

配置snmp_多種設備基于 SNMP 協議的敏感信息泄露漏洞數據分析報告

作者&#xff1a;知道創宇404實驗室1. 更新情況2. 事件概述SNMP協議[1]&#xff0c;即簡單網絡管理協議&#xff08;SNMP&#xff0c;Simple Network Management Protocol&#xff09;&#xff0c;默認端口為 161/UDP&#xff0c;目前一共有3個版本&#xff1a;V1&#xff0c;V…

python 個人所得稅問題_Python實現的個人所得稅計算器

這篇文章主要介紹了Python實現的個人所得稅計算器,涉及Python條件判斷與數值運算相關操作技巧,需要的朋友可以參考下本文實例講述了Python實現的個人所得稅計算器。分享給大家供大家參考&#xff0c;具體如下&#xff1a;# -*- coding: utf-8 -*-"""Created on …

建立項目接口文檔_分享:一步一個腳印,vue入門之使用mockjs搭建vue項目測試服務器...

在以前的文檔中&#xff0c;我們構建了vue項目的整體架構&#xff0c;詳見vue入門&#xff1a;vue項目架構設計起步&#xff0c;現在我們主要對其中的mock server 進行完善。一、概述前后端分離的項目優點之一就是可以前后端并行開發&#xff0c;互不影響。那么在后端接口沒有完…

有效字符區域 獲取textview_Android編程開發之TextView文字顯示和修改方法(附TextView屬性介紹)...

本文實例講述了Android編程開發之TextView文字顯示和修改方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;一. 新建一個Activity 和 Layout首先在layout文件夾中新建一個activity_main.xml,在新建工程的時候一般默認會新建此xml文件,修改其代碼如下:activity_main.…

單機最大負載_電流互感器允許接入的實際最大二次負載(注電案例1865)

某國外水電站安裝的水輪發電機組&#xff0c;單機額定容量為 120MW&#xff0c;發電機額定電壓為 13.8kV&#xff0c;cosφ0.85。發電機、主變壓器采用發變組單元接線&#xff0c;未裝設發電機斷路器&#xff0c;主變高壓側三相短路時流過發電機的最大短路電流為 19.6kA。發電機…

vue怎么vw布局好用_vue cli3項目的pc自適應布局_vw

前言vw布局的頁面是等比改變的,比如我們在一個750px的屏幕寬度中使用了vw,當我們把屏幕寬度改為1920的時候,網頁的整個樣式包括字體都會等比放大.vw布局我用于大屏監控數據展示.下圖是750屏幕寬度下的頁面下圖是1920屏幕寬度下的頁面pc端配置1.安裝postcss-px-to-viewport插件,…

python做得怎么變成exe_Python如何生成exe文件?

背景圖來源&#xff1a;click斗魚直播間真實rtmp地址獲取(含工具類下載)?zhuanlan.zhihu.com最經典的Python爬蟲(圖片)案例?zhuanlan.zhihu.com寫在前面&#xff1a;之前用python生成過可執行的exe文件(斗魚推流地址exe &#xff0c;圖片exe&#xff0c;芳兒小團子千人成像ex…

python mkl freebsd_freebsd下之簡單安裝python

先su到root帳戶進入/usr/ports/lang/python26然后直接make整個過程如圖所示&#xff0c;經過漫長的編譯之后...然后make install又是漫長的等待...出現Install them as needed.--------------------------------------------------------This package was built with the exper…

html video顯示進度條_使用 tqdm 在 Python 應用中顯示進度 | Linux 中國

如果你的程序需要一段時間才能顯示結果&#xff0c;可通過顯示它的進度來避免讓用戶感到沮喪。來源&#xff1a;https://linux.cn/article-12990-1.html作者&#xff1a;Moshe Zadka譯者&#xff1a;geekpi&#xff08;本文字數&#xff1a;3093&#xff0c;閱讀時長大約&#…

課題開題報告范文樣本_成都汽車職業技術學校舉行 2020年省、市、區課題開題報告會...

01為深入貫徹落實國務院、省、市、區關于深化教育教學改革的重要精神&#xff0c;充分發揮教育科研的先導作用&#xff0c;明晰課題研究的思路并提高課題研究的針對性&#xff0c;1月12日&#xff0c;成都汽車職業技術學校舉行2020年省、市、區課題開題報告會。本次開題報告會邀…

vsftp日志查看_vsftp日志xferlog格式分析(示例代碼)

1、開始vsftp記錄日志。修改/etc/vsftpd/vsftpd.conf 如下&#xff1a;xferlog_enableYESxferlog_std_formatYESxferlog_file/var/log/xferlogFTP服務器的日志設置&#xff0c;可以通過修改主配置文件/etc/vsftpd.conf實現。主配置文件中與日志設置有關的選項包括xferlog_enabl…

安裝mysql5 1步驟_Linux系統安裝MySQL詳細步驟(mysql-5.1等)

第一步、查找以前是否安裝有mysql使用下面命令&#xff1a;rpm -qa|grep -i mysql如果顯示有包則說明已安裝mysql第二步、如果已安裝&#xff0c;則需要刪除已安裝的數據庫可按以下步驟刪除數據庫&#xff1a;刪除包命令&#xff1a;rpm -e --nodeps 【包名】rpm -e --nodeps …

mysql分頁查詢關鍵_MySQL優化教程之超大分頁查詢

背景基本上只要是做后臺開發&#xff0c;都會接觸到分頁這個需求或者功能吧。基本上大家都是會用MySQL的LIMIT來處理&#xff0c;而且我現在負責的項目也是這樣寫的。但是一旦數據量起來了&#xff0c;其實LIMIT的效率會極其的低&#xff0c;這一篇文章就來講一下LIMIT子句優化…

mysql r_R之RMySQL

linux&#xff0c;mysql和R的版本信息&#xff1a;Linux naci 3.19.0-16-generic #16-Ubuntu SMPServer version: 5.6.24-0ubuntu2 (Ubuntu)R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"mysql的linux安裝&#xff0c;參照上一篇關于liunx下安裝mysql的文章。1.…

mysql 字符轉換函數是_MySQL日期和字符串轉換函數

Mysql中to_char()和str_to_date()函數轉載路徑&#xff1a;https://blog.csdn.net/ricardo_mli/article/details/802175121.字符串轉換成日期格式str_to_date(date,’%Y-%m-%d’)----->相當于Oracle中的to_char();例子&#xff1a;INSERT INTOt_order(order_time)VALUES(str…