当前位置: 首页 > news >正文

vps做网站灰色项目推广渠道

vps做网站,灰色项目推广渠道,群晖做网站域名,零基础网站建设教学1. 题目 给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。 水平翻转图片就是将图片的每一行都进行翻转,即逆序。 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]。 反转图片的意思是图片中的 0 全部被…

1. 题目

给定一个 n x n 的二进制矩阵 image ,先 水平 翻转图像,然后 反转 图像并返回 结果 。

水平翻转图片就是将图片的每一行都进行翻转,即逆序。

  • 例如,水平翻转 [1,1,0] 的结果是 [0,1,1]

反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。

  • 例如,反转 [0,1,1] 的结果是 [1,0,0]

2. 示例

3. 分析

遍历数组交换左右两个指针元素(水平翻转),同时判断交换后二者元素为1还是为0,进行替换(反转)。

class Solution {
public:vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) {int n = image.size();for(int i = 0; i < n; i++){int left = 0, right = n-1;while(left < right){swap(image[i][left], image[i][right]);if(image[i][left] == 0) image[i][left] = 1;else image[i][left] = 0;if(image[i][right] == 0) image[i][right] = 1;else image[i][right] = 0;left++;right--;}if(left == right){if(image[i][left] == 1) image[i][left] = 0;else image[i][left] = 1;}}return image;}
};

摘抄自:官方题解

上述每个元素是否都需交换和替换,是不是都必要捏?答案是:不是的。

  • 情况一:image[i][left] = 0,image[i][right] = 0。对第 i 行进行水平翻转之后,image[i][left] = 0,image[i][right] = 0。进行反转之后,image[i][left] = 1,image[i][right ]= 1。
  • 情况一:image[i][left] = 1,image[i][right] = 1。对第 i 行进行水平翻转之后,image[i][left] = 1,image[i][right] = 1。进行反转之后,image[i][left] = 0,image[i][right] = 0。
  • 情况一:image[i][left] = 0,image[i][right] = 1。对第 i 行进行水平翻转之后,image[i][left] = 1,image[i][right] = 0。进行反转之后,image[i][left] = 0,image[i][right] = 1。
  • 情况一:image[i][left] = 1,image[i][right] = 0。对第 i 行进行水平翻转之后,image[i][left] = 0,image[i][right] = 1。进行反转之后,image[i][left] = 1,image[i][right] = 0。

情况一和情况二是 image[i][left] = image[i][right] 的情况。在进行水平翻转和反转之后,image[i][left] 和 image[i][right] 的元素值都发生了改变,即元素值被反转。

情况三和情况四是 image[i][left] ≠ image[i][right] 的情况。在进行水平翻转和反转之后,image[i][left] 和 image[i][right] 的元素值都发生了两次改变,恢复原状。

所以当 left<right 时,判断 image[i][left] 和 image[i][right] 是否相等,如果相等则对 image[i][left] 和 image[i][right] 的值进行反转,如果不相等则不进行任何操作。

并且采用 ^ 运算符进行水平翻转和反转操作:

  • 1 ^ 1 = 0
  • 0 ^ 1 = 1
class Solution {
public:vector<vector<int>> flipAndInvertImage(vector<vector<int>>& image) {int n = image.size();for(int i = 0; i < n; i++){int left = 0, right = n-1;while(left < right){if(image[i][left] == image[i][right]){image[i][left] ^= 1;image[i][right] ^= 1;}left++;right--;}if(left == right) image[i][left] ^= 1;}return image;}
};

时间复杂度: O(n2)

空间复杂度: O(1)

http://www.dinnco.com/news/19281.html

相关文章:

  • 无锡知名网站制作公司网站推广费用
  • 天津企业网站建设方案线上推广外包公司
  • 好用的做图网站有哪些网站seo优化的目的
  • 开发一个网站测试要怎么做的2345网址导航是什么浏览器
  • 网站开发挣钱吗爱站网挖掘关键词
  • 岳阳市网站建设推广友情链接检测659292
  • 数据来源网站怎么做脚注新郑网络推广外包
  • 男的女的做那个的视频网站百度seo最新算法
  • 两学一做网站答题网址google google
  • WordPress前端上传大文件广州seo公司推荐
  • VM2008 做网站网页代码模板
  • 网站建设的仿站深圳网络推广
  • 网站建设与制作实现精准营销杭州排名优化软件
  • 营销型网站建设试题河南网站优化公司
  • 广州比较好的外贸公司有哪些长沙优化科技有限公司正规吗
  • 湛江有没有做网站的优化资讯
  • 电子商务网站建设的体会全球搜
  • 哪里有专做水果的网站目前最靠谱的推广平台
  • 嘉定专业做网站广州专门做网站
  • 有谁认识做微网站的公司网站制作
  • sql做网站后台优化设计电子课本
  • 网站如何布局设计最近发生的热点新闻
  • 手机网站建设商场开发新客户的十大渠道
  • 阿里云 两个网站竞价推广和seo的区别
  • cn域名做网站高端seo服务
  • 制作系统重庆关键词优化平台
  • 网站轮播动态图如何做上海百度seo优化
  • 网站如何设置微信支付功能哪家培训机构学校好
  • 山西网站建设开发团队茶叶网络推广方案
  • 专业积分商城网站建设搜索引擎排名优化seo课后题