JS算法題解旋轉(zhuǎn)數(shù)組方法示例
題目
給定一個(gè)數(shù)組,將數(shù)組中的元素向右移動(dòng) k 個(gè)位置,其中 k 是非負(fù)數(shù)。
示例 1:
輸入: [1,2,3,4,5,6,7] 和 k = 3 輸出: [5,6,7,1,2,3,4]
解釋:
向右旋轉(zhuǎn) 1 步: [7,1,2,3,4,5,6]
向右旋轉(zhuǎn) 2 步: [6,7,1,2,3,4,5]
向右旋轉(zhuǎn) 3 步: [5,6,7,1,2,3,4]
示例 2:
輸入: [-1,-100,3,99] 和 k = 2 輸出: [3,99,-1,-100]
解釋:
向右旋轉(zhuǎn) 1 步: [99,-1,-100,3]
向右旋轉(zhuǎn) 2 步: [3,99,-1,-100]
答案
解法1:
const rotate = (nums, k) => { for(var i = 0; i<k; i++){ nums.unshift(nums.pop()); } return nums; }
解法2:
const rotate = (nums, k) => { const n = nums.length; let tmpEnd = 0; let tmpPrev = 0; for(let i = 0; i<k; i++) { tmpEnd = nums[n-1]; for(let r = 0; r<n; r++) { tmpPrev = nums[r]; nums[r] = tmpEnd; tmpEnd = tmpPrev; } } return nums };
解法3:
const rotate = (nums, k) => { const n = nums.length; let reversePoint = n - k%n; reversePoint != 0 && (nums = nums.slice(reversePoint).concat(nums.slice(0, reversePoint))); return nums; }
解法4:
const rotate = (nums, k) => { const n = nums.length; let newArr = new Array(n); for(let i = 0;i<n; i++){ newArr[(i+k)%n] = nums[i]; } for(let r = 0; r<n; r++){ nums[r] = newArr[r]; } return nums }
以上就是JS算法題解旋轉(zhuǎn)數(shù)組方法示例的詳細(xì)內(nèi)容,更多關(guān)于JS算法題解旋轉(zhuǎn)數(shù)組的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
javascript數(shù)組對(duì)象常用api函數(shù)小結(jié)(連接,插入,刪除,反轉(zhuǎn),排序等)
這篇文章主要介紹了javascript數(shù)組對(duì)象常用api函數(shù),結(jié)合實(shí)例形式總結(jié)分析了javascript針對(duì)數(shù)組的連接、刪除、反轉(zhuǎn)、排序、插入等操作相關(guān)函數(shù)用法,需要的朋友可以參考下2016-09-09如何在CocosCreator中利用常駐節(jié)點(diǎn)做圖層管理
這篇文章主要介紹了如何在CocosCreator中利用常駐節(jié)點(diǎn)做圖層管理,這些技巧非常實(shí)用,希望同學(xué)們看完,回去可以試一下2021-04-04設(shè)置iframe的document.designMode后僅Firefox中其body.innerHTML為br
設(shè)置iframe的document.designMode為On可以讓其可編輯,一般用在富文本編輯器組件中。這里僅列出各瀏覽器差異2012-02-02document.documentElement和document.body區(qū)別介紹
body是DOM對(duì)象里的body子節(jié)點(diǎn),即body標(biāo)簽,documentElement 是整個(gè)節(jié)點(diǎn)樹的根節(jié)點(diǎn)root,詳細(xì)介紹請(qǐng)看本文,感興趣的朋友可以參考下2013-09-09js中利用cookie實(shí)現(xiàn)記住密碼功能
這篇文章主要為大家詳細(xì)介紹了js中利用cookie實(shí)現(xiàn)記住密碼功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10js表單提交和submit提交的區(qū)別實(shí)例分析
這篇文章主要介紹了js表單提交和submit提交的區(qū)別,結(jié)合實(shí)例形式較為詳細(xì)的分析了js表單提交和submit提交具體實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下2015-12-12