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

資訊專欄INFORMATION COLUMN

leetcode5: 矩陣反轉

hot_pot_Leo / 2643人閱讀

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

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].
實際就是先把子數組倒序,再把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的轉化, row[::-1]做倒序, 再兩次遍歷。

擴展知識:

var flipAndInvertImage = function(A) {

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

};
這里用到了按位異或運算符^
參與運算的兩個值,如果兩個相應位相同,則結果為0,否則為1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0

例如:10100001^00010001=10110000

0^0=0,0^1=1 0異或任何數=任何數

1^0=1,1^1=0 1異或任何數-任何數取反

任何數異或自己=把自己置0

(1)按位異或可以用來使某些特定的位翻轉,如對數10100001的第2位和第3位翻轉,可以將數與00000110進行按位異或運算。

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

(2)通過按位異或運算,可以實現兩個值的交換,而不必使用臨時變量。例如交換兩個整數a,b的值,可通過下列語句實現:

????a=10100001,b=00000110

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

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

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

(3)異或運算符的特點是:數a兩次異或同一個數b(a=a^b^b)仍然為原值a.

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103134.html

相關文章

  • leetcode5: 矩陣反轉

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

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

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

    philadelphia 評論0 收藏0
  • leetcode5 Longest Palindromic Substring 最長且為回數的子字符

    摘要:思路二指針最大長度現在我們從回數的特點入手。因此,假設當前得到的回數的最大長度為,我們可以判斷或者是不是回數。假設此時指針指向,而已知最大回數子字符串的長度為。 題目要求 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 場周賽

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

    Dionysus_go 評論0 收藏0

發表評論

0條評論

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