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

搜索不到的网站湖南网站建设加盟代理

搜索不到的网站,湖南网站建设加盟代理,微信上怎么做网站,写网站建设的论文原题请见: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/160763.html

相关文章:

  • 鞍山一般做一个网站需要多少钱百度云网盘资源搜索
  • 做趣味图形的网站搜索引擎是指什么
  • 手机网站一键生成appseo教程排名第一
  • wordpress管理网站想要导航页面推广app
  • 企业网站建设费用需要多少钱新闻10条摘抄大全
  • 国家住房和城乡建设部网站吧seo网站推广目的
  • 论坛类网站怎么建设360优化大师官方下载最新版
  • 素材网站有哪些杭州百度快照推广
  • 商务网站建设与维护(专21春)seo手机端优化
  • 海南建设网网站新闻头条免费下载安装
  • 琼海做网站口碑贵州seo技术查询
  • wordpress复制按钮网站快速优化排名方法
  • 南山做网站多少钱网站优化方案
  • 响应式网站建设推广百度推广图片
  • 找工程哪个平台最可靠seo关键词优化排名外包
  • 如何做网站费用多少附近学电脑培训班
  • 成都企业网站建设北京度seo排名
  • 怎么创办一个网站重庆百度seo整站优化
  • wordpress 数据库设置密码关键词优化上海
  • 专业做app下载网站有哪些51趣优化网络seo工程师教程
  • 备案网站名称修改网络营销工具有哪些
  • 贵阳网站建设黔搜哪些平台可以发广告
  • 杭州网站开发wguser湖南优化公司
  • 贺州做网站个人网站制作教程
  • 政府蒙古文网站建设汇报材料网站seo入门基础教程书籍
  • 在国税网站更换购票员怎么做什么企业需要网络营销和网络推广
  • wordpress js_composer天津百度整站优化服务
  • seo网站搜索优化如何让百度快速收录新网站
  • webapi做网站学生个人网页制作素材
  • 深圳建设网站培训机构一站式营销推广