第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

求助一個(gè)數(shù)組操作問題

求助一個(gè)數(shù)組操作問題

搖曳的薔薇 2018-09-11 09:14:01
我有一個(gè)數(shù)組需要將其反轉(zhuǎn),下面是列子,需要注意的最大值4的位置不能變,然后將最大值前面與后面的值分別重新倒置編排進(jìn)去,數(shù)學(xué)不太好,求助大家?guī)兔ar arr = [1, 0, 4, 3, 2];反轉(zhuǎn)為var arr = [2, 3, 4, 0, 1];var arr = [0, 4, 3, 2, 1];反轉(zhuǎn)為var arr = [3, 4, 0, 1, 2];var arr = [4, 3, 2, 1, 0];反轉(zhuǎn)為var arr = [4, 0, 1, 2, 3];var arr = [3, 2, 1, 0, 4];反轉(zhuǎn)為var arr = [0, 1, 2, 3, 4];
查看完整描述

1 回答

?
料青山看我應(yīng)如是

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超8個(gè)贊

這個(gè)其實(shí)很簡單的,以空間換時(shí)間,先翻轉(zhuǎn),然后連拼3個(gè),再計(jì)算之前的最大值所在的位置,進(jìn)行新數(shù)組的切割。

最大的性能消耗在getmax上。

var test = [

  [1, 0, 4, 3, 2],

  [0, 4, 3, 2, 1],

  [4, 3, 2, 1, 0],

  [3, 2, 1, 0, 4]

];


test.forEach(arr => console.log(reversal(arr)));


// 反轉(zhuǎn)

function reversal(arr) {

  let len = arr.length;

  // get max

  let max = arr[0];

  let index = 0;

  arr.forEach((v, i) => {

    if (v <= max) return;

    max = v;

    index = i;

  });


  // strat re

  let tmp = arr.reverse().concat(arr, arr);

  let newIndex = len - 1 - index + len;


  return tmp.slice(newIndex - index, newIndex + len - index);

}


查看完整回答
反對 回復(fù) 2018-10-28
  • 1 回答
  • 0 關(guān)注
  • 550 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)