Leetcode 832.翻转图像
1.题目描述
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。
水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。
反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。
示例 1:
输入: [[,,],[,,],[,,]]
输出: [[,,],[,,],[,,]]
解释: 首先翻转每一行: [[,,],[,,],[,,]];
然后反转图片: [[,,],[,,],[,,]]
示例 2:
输入: [[,,,],[,,,],[,,,],[,,,]]
输出: [[,,,],[,,,],[,,,],[,,,]]
解释: 首先翻转每一行: [[,,,],[,,,],[,,,],[,,,]];
然后反转图片: [[,,,],[,,,],[,,,],[,,,]]
说明:
1 <= A.length = A[0].length <= 200 <= A[i][j] <= 1
2.我的代码
//卸去对C语言的兼容,加速执行
/*static const auto KSpeedUp = [](){
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
return nullptr;
}();*/ class Solution {
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
//翻转每一行,反转每一行
for(auto& a : A){
reverse(a);
overturn(a);
}
return A;
} //反转
vector<int> overturn(vector<int>& nums){
for(auto& c : nums){
c = (c==)? : ;
}
return nums;
} //翻转(逆序)
vector<int> reverse(vector<int>& nums){
int sz = nums.size();
for(int i=; i<=sz/-; ++i){
swap(nums[i],nums[sz-i-]);
}
return nums;
}
};
3.局部优化代码
- reverse()函数支持对向量的翻转,无需自己造轮子;
- 1变0,0变1的技巧:c = 1 - c;
class Solution {
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
//翻转每一行,反转每一行
for(auto& a : A){
reverse(a.begin(),a.end());//注意:使用迭代器调用
overturn(a);
}
return A;
}
//反转
vector<int> overturn(vector<int>& nums){
for(auto& c : nums){
//c = (c==0)? 1 : 0;
c = -c;
}
return nums;
}
};
4.Leetcode的置顶范例
class Solution {
public:
vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) {
if (A.empty()) return A;
for (vector<int> &row : A)
{
reverse(row.begin(), row.end());//逆序每一行
for_each(row.begin(), row.end(), [](int& x){x = ^x; });//反转每一行 for_each遍历+lambda表达式
}
return A;
}
};
参考资料:
1.论C++11 中vector的N种遍历方法 (for_each遍历+Lambda函数)
Leetcode 832.翻转图像的更多相关文章
- Java实现 LeetCode 832 翻转图像(位运算)
832. 翻转图像 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...
- 力扣(LeetCode)832. 翻转图像
给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]. 反转图片的 ...
- 力扣832. 翻转图像-C语言实现-简单题
题目 传送门 文本 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, ...
- Leetcode#832. Flipping an Image(翻转图像)
题目描述 给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果. 水平翻转图片就是将图片的每一行都进行翻转,即逆序.例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]. ...
- [LeetCode] Flipping an Image 翻转图像
Given a binary matrix A, we want to flip the image horizontally, then invert it, and return the resu ...
- C#版(击败100.00%的提交) - Leetcode 151. 翻转字符串里的单词 - 题解
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C#版 - L ...
- LeetCode:翻转二叉树【226】
LeetCode:翻转二叉树[226] 题目描述 翻转一棵二叉树. 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 题目 ...
- leetcode-832翻转图像
翻转图像 思路: 先对图像进行水平翻转,然后反转图片(对每个像素进行异或操作) 代码: class Solution: def flipAndInvertImage(self, A: List[Lis ...
- leetcode python翻转字符串里的单词
# Leetcode 151 翻转字符串里的单词### 题目描述给定一个字符串,逐个翻转字符串中的每个单词. **示例1:** 输入: "the sky is blue" 输出: ...
随机推荐
- C#匿名参数(转载too)
匿名方法是在初始化委托时内联声明的方法. 例如下面这两个例子: 不使用匿名方法的委托: using System; using System.Collections.Generic; using Sy ...
- 欢迎来怼——第四次Scrum会议
一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华小组照片 二.开会信息 时间:2017/10/16 17:15~17:40,总计25min.地点:东北师范 ...
- Python:内建函数zip
1.语法 zip([iterable,...]) [说明]:iterable——一个或多个迭代器 2.功能 zip()函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个的元组,然后返回由这 ...
- struts2 jsp的session取值 if判断
model有个类user,其中有个string属性direction(方向) 在LoginAction中 登入成功 就 ActionContext actionContext = ActionCont ...
- 周总结<6>
周次 学习时间 新编写代码行数 博客量(篇) 学到知识点 13 10 100 2 网页设计:邻接矩阵深度以及广度遍历
- 有关rand(),srand()产生随机数学习总结
看到夏雪冬日的有关rand()和srand()产生随机数的总结,挺好的,学习了,然后又有百度其他人的成果,系统总结一下.本文转自夏雪冬日:http://www.cnblogs.com/heyongga ...
- lintcode-411-格雷编码
411-格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个二进制的差异. 给定一个非负整数 n ,表示该代码中所有二进制的总数,请找出其格雷编码顺序.一个格雷编码顺序必须以 0 ...
- C++ Primer Plus学习:第十五章
第十五章 友元.异常和其他 友元 友元类 表 0-1 class Tv { public: friend class Remote; } Remote类可以使用Tv的数据成员,Remote类在Tv类后 ...
- 实现Spring管理struts的Action
struts2和spring的整合,关键点在于struts2中的action要纳入spring容器的管理中成为一个bean. 可以在struts2中配置: <struts> ...
- phpdisk 盲注 &前台任意用户登录
代码审核 文件 plugins\phpdisk_client\passport.php 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $str ...