two pointers and bit manip
Intuition\n Describe your first thoughts on how to solve this problem. \nthis is classic tp\nbut i had used that rule:\n0^1=1\n1^1=0\n^ is xsor\n\n# Approach\n 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\nthis is classic tp\nbut i had used that rule:\n0^1=1\n1^1=0\n^ is xsor\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution:\n    def flipAndInvertImage(self, image: List[List[int]]) -> List[List[int]]:\n        for row in image:\n            l, r = 0, len(row) - 1\n            while l <= r:\n                row[l], row[r] = row[r]^1, row[l]^1\n                r -= 1\n                l += 1\n        return image\n```
['Two Pointers', 'Bit Manipulation', 'Python3']