JS寫一個方法,傳入一個數組,返回該陣列的層深
現在我們有一個多維陣列,我們想得到該陣列的層深,即最大維度
如:var arr = [1, [4,[5,6,[7]]], [2,3]] = 0;返回4;那麼我們該怎麼做呢?
核心思想:遞迴,迴圈遍歷
// 這裡傳入兩個引數 // 引數一為陣列 // 引數二為初始陣列的層深 function fo(arr,len){ var flag = false; var arr1 = []; for(var i=0; i<arr.length; i++){ if(!!arr[i].length){ for(var j=0; j<arr[i].length; j++){ arr1.push(arr[i][j]); } flag= true; } }
if(flag){ len++;
return fo(arr1,len) }else{ return len; } } //初始陣列層深為1; var len = fo(arr,1) console.log(len); //4
相關推薦
JS寫一個方法,傳入一個數組,返回該陣列的層深
現在我們有一個多維陣列,我們想得到該陣列的層深,即最大維度 如:var arr = [1, [4,[5,6,[7]]], [2,3]] = 0;返回4;那麼我們該怎麼做呢? 核心思想:遞迴,迴圈遍歷 // 這裡傳入兩個引數 // 引數一為陣列 // 引數二為初始陣列的層深 function fo(
用js實現隨機選取10–100之間的10個數字,存入一個數組,並排序
方法一: <!DOCTYPE html> <html><head><meta charset="utf-8"><title>好好學習天天向上</title><script type="text/j
選取10-100之間的10個數字,存入一個數組,並排序
一個數 隨機 調用 定義 -m 函數 實現 == turn //選取10-100之間的10個數字,存入一個數組,並排序//實現該功能函數function randomNub(arr,len,min,max){ //如果給的長度大於取值範圍,則超出提示 if(len&
js小方法積累,將一個數組按照n個一份,分成若干陣列
1 // 把一個數組按照一定長度分割成若干陣列 2 function group(array, subGroupLength) { 3 let index = 0; 4 let newArray = []; 5 while(index < array.length
前端演算法:給定一個數組,寫一個函式將所有0的移動到它的末尾,同時保持非零元素的相對順序(移動零)
給定一個數組nums,寫一個函式將所有0的移動到它的末尾,同時保持非零元素的相對順序。 例: 輸入: [0,1,0,3,12] 輸出: [1,3,12,0,0] 注意: 您必須在不製作陣列副本的情況下就地執行此操作。 最小化操作總數。 <script>
js實現每次程序發送一個數據 ,多次發送不一樣,5秒後繼續執行多次程序,判斷如果五秒後發送過來的數據和上次不一樣,少的刪除多的增加
增加 開始 後繼 tin key cli 監控 沒有 sop /*存儲設備ID*/var IDSNew = new Array();//判斷是否已經啟用服務var isopen = true;//需要放到接收設備數據處IDSNew[client.deviceId]=new
Codeforces Round #283 (Div. 2) A. Minimum Difficulty【一個數組定義困難值是兩個相鄰元素之間差的最大值。 給一個數組,可以去掉任意一個元素,問剩余數列的困難值的最小值是多少】
分析 options force minimum sta cif als 最小 技術分享 A. Minimum Difficulty time limit per test 2 seconds memory limit per test 256 mega
vue中循環一個數組,不顯示的問題,弄一個假數據,它反而會循環出來?why?
UC ans res ram 最好的 his get 一個 () 核心:就時this指向的問題,這種情況下最好打印出this看一下 可以在頁面渲染出那個數組 <div>{{listData}}</div>就會看見神奇的事情,竟然時空的解決方案: ge
一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數
/********************************************* *函式功能: 一個輸入的陣列中長度為101,陣列範圍[1,100],存在一個數重複,找出重複的數 *引數說明 * 輸入: [1,2,4,5,6,...,39,39,40,41,
python:YY校招試題--傳入一個數組進行排序,奇數在前進行升序,偶數在後進行降序
a = input() # 輸入使用空格進行進行間隔 num = [int(n) for n in a.split()] print(num) def mysort(a,ascending=True): # 插入排序,a為list陣列,ascending=True時升
【Java】給定一個字串str,和一個字母ch,請實現相應的程式碼求出一個數組,使陣列中每個數字表示該位置與字母ch之間的最短距離。 比如str=”lexinfintech” ch=”i” 則輸出為:[3,2,1,0,1,1,0,1,2,3,4,5]
import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @author: ycz * @date: 2018/12/17 0017 16:43 * @description: */ p
在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個陣列中的逆序對的總數P。並將P對1000000007取模的結果輸出。
/* 最簡單的思路:陣列的所有數兩兩比較,進行累加,空間複雜度為O(n^2) */ class Solution { public: int InversePairs(vector<int> data) { int P
有自己的程式碼--題目:給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一個節點。
原文:https://yq.aliyun.com/articles/547799 描述: 題目:給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一個節點。 例如:[3,4,2
矩陣找數--一個m*n的矩陣,從左到右從上到下都是遞增的,給一個數x,判斷x是否在矩陣中。要求效率儘可能的高。
思路一:迴圈找 效率差 思路二: 因為從左到右從上到下都是遞增的。 所以用數字和右上角的數字比較 如果要找的數字是7,則數字先與9比。比9小說明在9的左側。 再與8比,比8小,說明在8的左側。 與2比,比2大,在2的下側。 比4大,在4的下側
用C語言寫一個數組,實現類似JAVA語言中ArrayList的功能
此程式是在看過郝斌老師的資料結構與演算法的視訊後,自己用C語言實現的。整個程式比較簡單,適合入門資料結構時練手。 #include <stdio.h> #include <stdlib.h> #include <malloc.h> #
一個m*n的矩陣,從左到右從上到下都是遞增的,給一個數x,判斷x是否在矩陣中。(高效率)
這樣的矩陣可以使用一個二維陣列儲存,知道了矩陣的特點,選取一個元素時可以將矩陣分割槽 可以看到隨意選一個元素的話會分成四個區域,陰影部分是可能的區域,深色的是確定比要查詢的大或者小,淺色陰影是有可能,所以下一步的動作很難確定,因此,隨意取一個點進行比較然後
C語言用陣列1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問實現約瑟夫環問題
1. 簡單約瑟夫環問題: N個人,編號從1~N圍成一圈,輸入一個數T,從1號開始報數,報到T的人出圈;下一人又從1開始報數,下一個報到T的人出圈,輸出出圈順序。 考慮問題: 報到T的人出圈,怎麼表示出圈?要麼刪除對應的標號,其他的標號前移(如果是陣列結構,要依次移動
在陣列中的兩個數字,如果前面一個數字大於後面的數字,則這兩個數字組成一個逆序對。輸入一個數組,求出這個陣列中的逆序對的總數P。並將P對1000000007取模的結果輸出。 即輸出P%100000000
分析:可以利用兩層for迴圈,從頭開始遍歷查詢每一個元素的逆序對數,然後求總和。也可以利用歸併排序的思想來求解。下面是利用歸併排序的思想求解 public class Solution{public int InversePairs(int[] array) {if (ar
給定一個數組,如何構造一個二叉排序樹(ADL)
構造二叉排序樹 構造一棵二叉排序樹就是依次輸入資料元素,將它們插入到二叉排序樹中的適當位置上的過程。具體過程是:每次讀入一個元素,就建立一個新的節點,若二叉排序樹非空,則將新節點的值
說你有一個數組,其中第i個元素是第i天給定股票的價格。設計一個演算法來找到最大的利潤,最多可以完成兩個交易。
用四個變數來表示倆次交易的買入賣出,遍歷陣列,比較每次交易的利益,儲存最大的。 int maxProfit(vector<int> &prices) { int len=prices.size(); if(len