摘要:給定一個(gè)包含中個(gè)數(shù)的序列,找出中沒有出現(xiàn)在序列中的那個(gè)數(shù)。求合法開始之前我先說一下我的思路個(gè)有序數(shù)字累加和,數(shù)學(xué)里邊是有公式的,我們重溫一下推導(dǎo)過程。
給定一個(gè)包含 0, 1, 2, ..., n 中 n 個(gè)數(shù)的序列,找出 0 .. n 中沒有出現(xiàn)在序列中的那個(gè)數(shù)。
示例 1:
輸入: [3,0,1]
輸出: 2
示例 2:
輸入: [9,6,4,2,3,5,7,0,1]
輸出: 8
下面我用兩種方法,一塊了解一下。
求合法// 開始之前我先說一下我的思路 //0-n個(gè)有序數(shù)字累加和,數(shù)學(xué)里邊是有公式的,我們重溫一下推導(dǎo)過程。 // 0, 1 n為1 個(gè)數(shù)為2, 累加和為1 // 0, 1, 2 n為2 個(gè)數(shù)為3,累加和為3 // 0, 1, 2, 3 n為3 個(gè)數(shù)為4,累加和為6 // 0, 1, 2, 3 ,4 n為4 個(gè)數(shù)為5, 累加和為10 // 思考一下,n已知所以我們從n上找規(guī)律 //以上我們推出 (n*個(gè)數(shù))/2 = 累加和,是不是這個(gè)理? // n知道 累加和知道,少那個(gè)我們不就知道了嗎? // 完整的n序列和-缺失數(shù)字的累加和=缺失數(shù)字 // 翻譯成代碼 var arr = [0, 1, 3] function findNum(nums) { let len = nums.length let n = len * (len + 1) / 2 let n1 = nums.reduce((num, item) => { return num + item }, 0) console.log(n, n1) return n - n1 }; console.log(findNum(arr))//2索引查找法
//先解析思路,0-n序列,數(shù)組的索引和0-n序列正好能一一對(duì)應(yīng),不過因?yàn)橛锌赡苁莵y序,所以不能直接挨個(gè)匹配索引對(duì)比,我們需要換個(gè)思路。 //因?yàn)槭切蛄校m然亂序,只是和遍歷n的索引值缺一個(gè),這就簡(jiǎn)單了,我們通過遍歷n來查找對(duì)應(yīng)的剩余數(shù)組,找不到的就是我們要找的缺失數(shù)字,怎么找對(duì)應(yīng)數(shù)字呢?你猜對(duì)了我們用indexOf() function findNum1(nums) { let len = nums.length + 1 for (let i = 0; i < len; i++) { if (nums.indexOf(i) === -1) { return i } } }; findNum1(arr)
完美,只不過沒有第一種的效率高!畢竟每一次indexOf也是一次遍歷過程。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/101513.html
摘要:題目描述給定一個(gè)包含中個(gè)數(shù)的序列,找出中沒有出現(xiàn)在序列中的那個(gè)數(shù)。示例輸入輸出示例輸入輸出最簡(jiǎn)單的解法剛看到的這道題的時(shí)候,第一感覺就是排序,之后直接挨個(gè)比較就能找到缺失的數(shù)字。 題目描述 給定一個(gè)包含 0, 1, 2, ..., n 中 n 個(gè)數(shù)的序列,找出 0 .. n 中沒有出現(xiàn)在序列中的那個(gè)數(shù)。 示例 1: 輸入: [3,0,1] 輸出: 2 示例 2: 輸入: [9,6,...
摘要:月下半旬攻略道題,目前已攻略題。目前簡(jiǎn)單難度攻略已經(jīng)到題,所以后面會(huì)調(diào)整自己,在刷算法與數(shù)據(jù)結(jié)構(gòu)的同時(shí),攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區(qū)別...
前端LeetCode刷題 下面是已刷的題目的目錄。GitHub:https://github.com/cunzaizhuy...每日打卡更新中,歡迎關(guān)注。 數(shù)組類 26 刪除排序數(shù)組中的重復(fù)項(xiàng) 27 移除元素 35 搜索插入位置 66 加1 80 medium 刪除排序數(shù)組中的重復(fù)項(xiàng)2 88 合并兩個(gè)有序數(shù)組 167 兩數(shù)之和II - 輸入有序數(shù)組 118 楊輝三角 169 easy 求眾數(shù) 1...
摘要:題目詳情題目的意思是輸入一個(gè)長度為的數(shù)組,找到這個(gè)數(shù)字中不存在于數(shù)組中的丟失的數(shù)字思路我的想法是,用這個(gè)數(shù)的和減去數(shù)組中的每一個(gè)元素的值,最后剩下的值就是丟失的數(shù)字解法 題目詳情 Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missing fr...
摘要:在線網(wǎng)站地址我的微信公眾號(hào)完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個(gè)題。這是項(xiàng)目地址歡迎一起交流學(xué)習(xí)。 這篇文章記錄我練習(xí)的 LeetCode 題目,語言 JavaScript。 在線網(wǎng)站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號(hào): showImg(htt...
閱讀 1135·2021-09-22 15:32
閱讀 1731·2019-08-30 15:53
閱讀 3263·2019-08-30 15:53
閱讀 1418·2019-08-30 15:43
閱讀 461·2019-08-28 18:28
閱讀 2576·2019-08-26 18:18
閱讀 676·2019-08-26 13:58
閱讀 2535·2019-08-26 12:10