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

pc网站自动跳转wap长沙网站推广公司排名

pc网站自动跳转wap,长沙网站推广公司排名,赌博游戏网站怎么做,公司网站建设亚运村原题请见:Leetcode189-旋转数组 1、题目描述 2、题目分析 首先容易想到的最简单的方案,是算出来移动K步之后,新数组的每一个坐标与原坐标的映射关系,然后根据映射关系放到一个全新的数组,再把新数组的值赋给原数组。…

原题请见:Leetcode189-旋转数组

1、题目描述

请添加图片描述

2、题目分析

首先容易想到的最简单的方案,是算出来移动K步之后,新数组的每一个坐标与原坐标的映射关系,然后根据映射关系放到一个全新的数组,再把新数组的值赋给原数组。

但题目描述的进阶方案,我们应该考虑使用 O(1) 复杂度实现。
这里不啰嗦,直接说结论:

任何有关数组的旋转、对称、平移的题目,优先去把题目转换成几次基本的对称。
大多数情况下都能通过有限次的对称解决。

例如本题:
假设输入条件是:[1,2,3,4,5,6,7] k = 3
第一步:先整体左右对称:[7,6,5,4,3,2,1]
第二步:根据 k = 3,做一个分割线: [7,6,5 | 4,3,2,1]
第三步:分割线左边的内容做对称,分割线右边的内容做对称 [5,6,7 | 1,2,3,4]
请添加图片描述

3、题解

class Solution {public void rotate(int[] nums, int k) {// 考虑使用原地对称的算法解决这个问题// 例如:[1,2,3,4,5,6,7] k = 3// 第一步:先整体左右对称:[7,6,5,4,3,2,1]// 第二步:根据 k = 3,做一个分割线: [7,6,5 | 4,3,2,1]// 第三步:分割线左边的内容做对称,分割线右边的内容做对称 [5,6,7 | 1,2,3,4]int minK = k % nums.length;symmetrized(nums, 0, nums.length - 1);symmetrized(nums, 0 , minK - 1);symmetrized(nums, minK, nums.length - 1);}private void symmetrized(int[] nums, int start, int end) {int mid = (start + end + 1) / 2;for (int i = 0; i + start< mid; i++) {int temp = nums[start + i];nums[start + i] = nums[end - i];nums[end - i] = temp;}}
}
http://www.dtcms.com/wzjs/377694.html

相关文章:

  • 怎么通过数据库做网站的登录app推广公司
  • 湖南省交通建设质监局网站百度极速版app下载安装
  • 网站建设优化是什么鬼个人接app推广单去哪里接
  • 建设厅企业锁在哪个网站登录西安网络科技有限公司
  • 最新新闻热点事件2021年10月人教版优化设计电子书
  • 建设网站草案企业营销策划公司
  • 免费人体做爰网站建设网站流程
  • 太原中小学网站建设2023第三波疫情已经到来了
  • 做网站多少钱渠道策略的四种方式
  • 杭州模板建站哪家好市场调研怎么做
  • 网站大全免黄镇江网站seo
  • 广告设计公司有什么岗位百度seo排名在线点击器
  • 母婴网站建设方案平台推广
  • 亿度网络网站建设镇江网络
  • 国家工程建设标准化信息网站国际最新新闻热点事件
  • 搭建网站的架构域名状态查询工具
  • 上海做公司网站亿速云
  • 网络营销托管服务商指的是网站seo优化检测
  • 上海建设部网站百度seo优化培训
  • 武汉城乡住房建设网站广州今日头条新闻
  • 广东网站开发哪家互联网营销怎么赚钱
  • 做平面设计都在那个网站找免费素材?2020做seo还有出路吗
  • 中山网站建设外包广州最新重大新闻
  • wordpress 限制ip登陆seo网站排名优化培训教程
  • 淘宝网站建设特点网络营销工程师是做什么的
  • 钢板防护罩做网站百度号码认证申诉平台
  • 优化网站具体如何做品牌策划公司介绍
  • 网站建设编辑部线上推广渠道
  • 六安市建设银行网站百度图片搜索入口
  • 邯郸建网站百度seo点击器