成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

leetcode5: 矩陣反轉(zhuǎn)

hot_pot_Leo / 2681人閱讀

摘要:題目實(shí)際就是先把子數(shù)組倒序,再把和互換。通過(guò)按位異或運(yùn)算,可以實(shí)現(xiàn)兩個(gè)值的交換,而不必使用臨時(shí)變量。例如交換兩個(gè)整數(shù),的值,可通過(guò)下列語(yǔ)句實(shí)現(xiàn)異或運(yùn)算符的特點(diǎn)是數(shù)兩次異或同一個(gè)數(shù)仍然為原值

1.題目:
Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resulting image.

To flip an image horizontally means that each row of the image is reversed. For example, flipping [1, 1, 0] horizontally results in [0, 1, 1].

To invert an image means that each 0 is replaced by 1, and each 1 is replaced by 0. For example, inverting [0, 1, 1] results in [1, 0, 0].
實(shí)際就是先把子數(shù)組倒序,再把1和0互換。
例子1:

Input: [[1,1,0],[1,0,1],[0,0,0]]
Output: [[1,0,0],[0,1,0],[1,1,1]]
Explanation: First reverse each row: [[0,1,1],[1,0,1],[0,0,0]].
Then, invert the image: [[1,0,0],[0,1,0],[1,1,1]]

例子2:

Input: [[1,1,0,0],[1,0,0,1],[0,1,1,1],[1,0,1,0]]
Output: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]
Explanation: First reverse each row: [[0,0,1,1],[1,0,0,1],[1,1,1,0],[0,1,0,1]].
Then invert the image: [[1,1,0,0],[0,1,1,0],[0,0,0,1],[1,0,1,0]]

2.我的解法:
Javascript

var flipAndInvertImage = function(A) {
   return A.map(a =>  a.reverse().map(v => v? 0: 1 )
    )
};
Runtime: 68 ms, faster than 94.99% of JavaScript online submissions
for Flipping an Image. Memory Usage: 35.1 MB, less than 48.85% of
JavaScript online submissions for Flipping an Image.

其他解法:

Python

class Solution(object):
    def flipAndInvertImage(self, A):  
        return [[1-i for i in row[::-1]] for row in A]

1-i功能1和0的轉(zhuǎn)化, row[::-1]做倒序, 再兩次遍歷。

擴(kuò)展知識(shí):

var flipAndInvertImage = function(A) {

return A.map(row => row.reverse().map(num => num^1));

};
這里用到了按位異或運(yùn)算符^
參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位相同,則結(jié)果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0

例如:10100001^00010001=10110000

0^0=0,0^1=1 0異或任何數(shù)=任何數(shù)

1^0=1,1^1=0 1異或任何數(shù)-任何數(shù)取反

任何數(shù)異或自己=把自己置0

(1)按位異或可以用來(lái)使某些特定的位翻轉(zhuǎn),如對(duì)數(shù)10100001的第2位和第3位翻轉(zhuǎn),可以將數(shù)與00000110進(jìn)行按位異或運(yùn)算。

          10100001^00000110=10100111 //1010 0001 ^ 0x06 = 1010 0001 ^ 6

(2)通過(guò)按位異或運(yùn)算,可以實(shí)現(xiàn)兩個(gè)值的交換,而不必使用臨時(shí)變量。例如交換兩個(gè)整數(shù)a,b的值,可通過(guò)下列語(yǔ)句實(shí)現(xiàn):

????a=10100001,b=00000110

? ? a=a^b;   //a=10100111

? ? b=b^a;   //b=10100001

? ? a=a^b;   //a=00000110

(3)異或運(yùn)算符的特點(diǎn)是:數(shù)a兩次異或同一個(gè)數(shù)b(a=a^b^b)仍然為原值a.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/103134.html

相關(guān)文章

  • leetcode5: 矩陣反轉(zhuǎn)

    摘要:題目實(shí)際就是先把子數(shù)組倒序,再把和互換。通過(guò)按位異或運(yùn)算,可以實(shí)現(xiàn)兩個(gè)值的交換,而不必使用臨時(shí)變量。例如交換兩個(gè)整數(shù),的值,可通過(guò)下列語(yǔ)句實(shí)現(xiàn)異或運(yùn)算符的特點(diǎn)是數(shù)兩次異或同一個(gè)數(shù)仍然為原值 1.題目:Given a binary matrix A, we want to flip the image horizontally, then invert it, and return th...

    EasonTyler 評(píng)論0 收藏0
  • LeetCode5.最長(zhǎng)回文子串 JavaScript

    摘要:最長(zhǎng)回文子串給定一個(gè)字符串,找到中最長(zhǎng)的回文子串。你可以假設(shè)的最大長(zhǎng)度為。示例輸入輸出注意也是一個(gè)有效答案。 LeetCode5.最長(zhǎng)回文子串 JavaScript 給定一個(gè)字符串 s,找到 s 中最長(zhǎng)的回文子串。你可以假設(shè) s 的最大長(zhǎng)度為 1000。示例 1: 輸入: babad 輸出: bab 注意: aba 也是一個(gè)有效答案。 示例 2: 輸入: cbbd輸出: bb /*...

    philadelphia 評(píng)論0 收藏0
  • leetcode5 Longest Palindromic Substring 最長(zhǎng)且為回?cái)?shù)的子字符

    摘要:思路二指針最大長(zhǎng)度現(xiàn)在我們從回?cái)?shù)的特點(diǎn)入手。因此,假設(shè)當(dāng)前得到的回?cái)?shù)的最大長(zhǎng)度為,我們可以判斷或者是不是回?cái)?shù)。假設(shè)此時(shí)指針指向,而已知最大回?cái)?shù)子字符串的長(zhǎng)度為。 題目要求 Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s i...

    Imfan 評(píng)論0 收藏0
  • LeetCode 第 267 場(chǎng)周賽

    摘要:第三組長(zhǎng)度為,奇數(shù),沒(méi)有發(fā)生反轉(zhuǎn)。箭頭指示順序即為單元格填充順序。因此我們采用并查集處理朋友關(guān)系。如果沒(méi)有沖突,再把修改后的副本賦值給原并查集,添加成功否則就認(rèn)為這個(gè)添加無(wú)法進(jìn)行,原并查集對(duì)象不做修改,該請(qǐng)求為。 ...

    Dionysus_go 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<