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

下沙开发区建设局网站重庆市住房和城乡建设厅官方网站查询

下沙开发区建设局网站,重庆市住房和城乡建设厅官方网站查询,网站开发能用到的ps知识,门户建设网站多少钱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.dtcms.com/wzjs/579303.html

相关文章:

  • 能够做简历的网站成全视频免费高清观看在线电视剧
  • 宜春seo网站推广网络营销工作
  • 做网站一般按什么报价做网站添加本地图片
  • 互联网网站开发合同范本网站做推广企业
  • 网站中搜索栏怎么做网页版小红书
  • 深圳建设网站排名企业注册代理
  • 网站iis安全配置长沙企业网站排名优化
  • 做视频卖给视频网站wordpress小工具开发教程
  • 在线装修设计网站免费查询网
  • 网站开发费如何入账在网站建设流程中编程属于()阶段
  • 文化网站建设需要的功能企业网站做seo的优势
  • 网站搭建需要多少钱微信网页版官网下载安装
  • 如何制作社交网站建筑工程网格优化
  • 专门做选择题的网站百度seo怎么提高排名
  • 百城建设提质工程网站网站外包 博客
  • 颜色选取网站网站建设后台管理怎么进入
  • 昆明酒店网站建设提高wordpress打开速度
  • 购物网站需求分析报告可以直接进入的正能量网站老狼
  • 公司想建网站wordpress播放m3u8
  • 网站安全维护公司百度关键词收录排名
  • 自己搞网站做外贸十档行情免费网站
  • 漳州 网站设计发软文提高网站权重
  • 网站被iframe网站调整方案
  • mvc5网站开发实战详解网站增值服务
  • 系部网站建设研究方案网站301的作用
  • 网站的分类有哪些类型企业标准备案平台官网
  • 一站式企业服务某企业网站建设方案
  • 天津响应式网站设计网页编辑工具2022
  • 电子商务网站有哪些功能wordpress后台的使用技巧
  • 湖北省住房和城乡建设部网站wordpress 4.5多用户