国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

leetcode5: 矩陣反轉(zhuǎn)

EasonTyler / 594人閱讀

摘要:題目實(shí)際就是先把子數(shù)組倒序,再把和互換。通過按位異或運(yùn)算,可以實(shí)現(xiàn)兩個值的交換,而不必使用臨時變量。例如交換兩個整數(shù),的值,可通過下列語句實(shí)現(xiàn)異或運(yùn)算符的特點(diǎn)是數(shù)兩次異或同一個數(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ò)展知識:

var flipAndInvertImage = function(A) {

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

};
這里用到了按位異或運(yùn)算符^
參與運(yùn)算的兩個值,如果兩個相應(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)按位異或可以用來使某些特定的位翻轉(zhuǎn),如對數(shù)10100001的第2位和第3位翻轉(zhuǎn),可以將數(shù)與00000110進(jìn)行按位異或運(yùn)算。

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

(2)通過按位異或運(yùn)算,可以實(shí)現(xiàn)兩個值的交換,而不必使用臨時變量。例如交換兩個整數(shù)a,b的值,可通過下列語句實(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兩次異或同一個數(shù)b(a=a^b^b)仍然為原值a.

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/43474.html

相關(guān)文章

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

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

    hot_pot_Leo 評論0 收藏0
  • LeetCode5.最長回文子串 JavaScript

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

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

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

    Imfan 評論0 收藏0
  • LeetCode 第 267 場周賽

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

    Dionysus_go 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<