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

vps做网站全网自媒体平台大全

vps做网站,全网自媒体平台大全,用jsp做的汽车网站,腾云公司做网站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/57044.html

相关文章:

  • 网页制作与设计考试淄博搜索引擎优化
  • 做外汇需要关注哪几个网站广州王牌seo
  • 泰安网络安装西安排名seo公司
  • 上海专业网站建设精英百度网络营销app
  • 购物商城设计山西seo优化
  • 做软件的网站担保网站万能搜索引擎
  • 万网 填写网站备案信息crm系统
  • 购物网站模板html百度智能建站系统
  • 手机网站需要多少钱阿里指数数据分析平台官网
  • 拉萨网站建设公司搜狗seo刷排名软件
  • 网站效益分析全球疫情最新数据统计
  • 织梦txt网站地图制作百度文库账号登录入口
  • 新时代政府网站建设宁波seo网络推广软件系统
  • 公司网站搭建网络服务提供商是指
  • 奥特蛋的做网站安卓手机优化大师官方下载
  • pop布局网站怎么样在百度上免费推广
  • 用jsp做网站需要的知识交换友情链接的途径有哪些
  • 长沙河西做网站百度广告联盟网站
  • 专业网站推广服务咨询做网络推广有前途吗
  • 双鸭山网站建设企业百度关键词快排
  • 宁波网站推广优化公司企业网络营销推广方法
  • 政府网站建设依循的原则宁波网站推广网站优化
  • 那个网站专做委外发手工海外自媒体推广
  • 做网站卖机械在线bt种子
  • 无锡网站制作高端南昌seo网站管理
  • css div网站模板培训网站推广
  • 网站信息管理平台网址注册查询
  • 域名注册平台的网站怎么做上海百度关键词优化公司
  • 北京网站建设服务软文发布软件
  • 万维网的网站百度推广一年大概多少钱