最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript數(shù)組操作之旋轉(zhuǎn)二維數(shù)組

 更新時(shí)間:2022年04月26日 16:31:25   作者:掘金安東尼  
這篇文章主要介紹了JavaScript數(shù)組操作之旋轉(zhuǎn)二維數(shù)組,主要從兩個(gè)方面展開文章介紹,一是通過對數(shù)組的操作熟練度;二是(鏡像反轉(zhuǎn))比實(shí)現(xiàn)一更優(yōu),減少了空間復(fù)雜度,內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下

一、題目描述

給定一個(gè) n × n 的二維矩陣 matrix 表示一個(gè)圖像。請你將圖像順時(shí)針旋轉(zhuǎn) 90 度。

你必須在 原地 旋轉(zhuǎn)圖像,這意味著你需要直接修改輸入的二維矩陣。請不要 使用另一個(gè)矩陣來旋轉(zhuǎn)圖像。

示例 1:

輸入:matrix = [[1,2,3],[4,5,6],[7,8,9]]

輸出:[[7,4,1],[8,5,2],[9,6,3]]

示例 2:

輸入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]

輸出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

二、思路與實(shí)現(xiàn)

從示例圖中就可以知道:

數(shù)組順時(shí)針旋轉(zhuǎn) 90 度之后,其實(shí)就是第1列變成第1行,第2列變成第2行,第3列變成第3行......

實(shí)現(xiàn)一:

/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function (matrix) {
let n = matrix.length;
let res = new Array(n).fill(0).map(() => new Array(n).fill(0));
for (let i = 0; i < n; i++)
for (let j = n - 1; j >= 0; j--) res[i][n - j - 1] = matrix[j][i];
return res;
};

時(shí)間復(fù)雜度:O(N^2),其中N為matrix的邊長
空間復(fù)雜度:O(N^2)。我們需要使用一個(gè)和 matrix 大小相同的輔助數(shù)組。

還有另外一種思路:

  • 按照左上到右下的對角線進(jìn)行鏡像對稱
  • 對矩陣的每一行進(jìn)行反轉(zhuǎn)

比如這樣:

/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function (matrix) {
let n = matrix.length;
// 先沿對角線鏡像對稱二維矩陣
for (let i = 0; i < n; i++) {
for (let j = i; j < n; j++) {
[matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]];
}
}
const reverseRow = (arr) => {
let i = 0,
j = arr.length - 1;
while (i <= j) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
j--;
}
};
// 然后反轉(zhuǎn)二維矩陣的每一行
for (let row of matrix) {
reverseRow(row);
}
return matrix;
};
  • 時(shí)間復(fù)雜度跟解法1一樣,但是卻不需要額外的空間復(fù)雜度

三、總結(jié)

到此這篇關(guān)于JavaScript數(shù)組操作之旋轉(zhuǎn)二維數(shù)組的文章就介紹到這了,更多相關(guān)JS旋轉(zhuǎn)二維數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaScript使用URL.canParse驗(yàn)證URL的方法詳解

    JavaScript使用URL.canParse驗(yàn)證URL的方法詳解

    JavaScript誕生以來,一直沒有一種簡單的方法驗(yàn)證URL,現(xiàn)在JavaScript新增了一個(gè)新方法——URL.canParse,文中通過代碼示例和圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • JavaScript 閉包深入理解(closure)

    JavaScript 閉包深入理解(closure)

    最近在網(wǎng)上查閱了不少Javascript閉包(closure)相關(guān)的資料,寫的大多是非常的學(xué)術(shù)和專業(yè)。對于初學(xué)者來說別說理解閉包了,就連文字?jǐn)⑹龆己茈y看懂。撰寫此文的目的就是用最通俗的文字揭開Javascript閉包的真實(shí)面目。
    2009-05-05
  • js實(shí)現(xiàn)簡單的選項(xiàng)卡效果

    js實(shí)現(xiàn)簡單的選項(xiàng)卡效果

    本文主要介紹了js實(shí)現(xiàn)簡單的選項(xiàng)卡效果的示例代碼,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • 詳解微信小程序網(wǎng)絡(luò)請求接口封裝實(shí)例

    詳解微信小程序網(wǎng)絡(luò)請求接口封裝實(shí)例

    這篇文章主要介紹了微信小程序網(wǎng)絡(luò)請求接口封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • 基于jQuery的模仿新浪微博時(shí)間的組件

    基于jQuery的模仿新浪微博時(shí)間的組件

    廢話不多說,實(shí)現(xiàn)原理主要是處理table,生成tr td,其中最重要的是如何找出每月第一天是星期幾,然后就能對應(yīng)出這個(gè)月的余下天數(shù).
    2011-10-10
  • js 下拉菜單點(diǎn)擊旁邊收起實(shí)現(xiàn)(踩坑記)

    js 下拉菜單點(diǎn)擊旁邊收起實(shí)現(xiàn)(踩坑記)

    這篇文章主要介紹了js 下拉菜單點(diǎn)擊旁邊收起實(shí)現(xiàn)(踩坑記),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • BootStrap selectpicker后臺動態(tài)綁定數(shù)據(jù)的方法

    BootStrap selectpicker后臺動態(tài)綁定數(shù)據(jù)的方法

    這篇文章主要為大家詳細(xì)介紹了BootStrap selectpicker后臺動態(tài)綁定數(shù)據(jù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 預(yù)防網(wǎng)頁掛馬的方法總結(jié)

    預(yù)防網(wǎng)頁掛馬的方法總結(jié)

    這篇文章主要介紹了預(yù)防網(wǎng)頁掛馬的方法總結(jié)的相關(guān)資料,這里詳細(xì)整理了具體方法,和如何實(shí)現(xiàn),需要的朋友可以參考下
    2016-11-11
  • javascript 仿QQ滑動菜單效果代碼

    javascript 仿QQ滑動菜單效果代碼

    javascript 仿QQ滑動菜單效果代碼,非常漂亮的代碼,學(xué)習(xí)js的朋友可以參考下代碼風(fēng)格。
    2010-09-09
  • 購物車選中得到價(jià)格實(shí)現(xiàn)示例

    購物車選中得到價(jià)格實(shí)現(xiàn)示例

    本文為大家介紹下購物車如何實(shí)現(xiàn)選中得到價(jià)格,下面有個(gè)不錯(cuò)的示例,大家可以參考下
    2014-01-01

最新評論

济宁市| 萨迦县| 连云港市| 克什克腾旗| 寿宁县| 乐陵市| 郴州市| 凌海市| 东乌珠穆沁旗| 宜兰市| 石河子市| 崇左市| 凤庆县| 新河县| 开化县| 广东省| 沭阳县| 金塔县| 巩义市| 固阳县| 镇原县| 金川县| 鄂尔多斯市| 兰州市| 望都县| 宿迁市| 遵义县| 含山县| 鹿泉市| 长丰县| 奇台县| 建阳市| 大悟县| 连云港市| 阿瓦提县| 称多县| 海盐县| 左云县| 青冈县| 米易县| 东海县|