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

国外案例网站深圳百度代理

国外案例网站,深圳百度代理,南昌网站建设搜q.479185700,我国中小企业网站建设原题请见: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/170335.html

相关文章:

  • 鞍山建一个网站大概要多少钱营销网络营销
  • 网站建设的一般步骤无锡百度信息流
  • 网页制作与设计软件广州seo效果
  • 英语网站源码广州线下教学
  • 网站html地图怎么做的正规seo一般多少钱
  • 上海网站建设平台研究生培训机构排名
  • 网站优化知识资讯免费淘宝关键词工具
  • 更换网站需要备案吗百度开户代理
  • 网站建设及使用方案西安seo推广优化
  • 广州h5网站制作2020站群seo系统
  • 内涵 网站 源码三只松鼠网络营销策划书
  • 做网站的开题报告seo技术培训广东
  • 手机网站建设万网长沙网络优化产品
  • 阿里云 建设网站考研培训班集训营
  • asp网站经常 响应百度风云搜索榜
  • 大型网站制作丹阳网站建设百度学术论文查重免费
  • 长沙软件开发公司seo短视频网页入口引流
  • 怎么建设自己的卡盟网站合肥seo推广外包
  • 网站建设的原则有哪些百度一下了你就知道官网
  • 做网站设计方案怎么写新东方雅思培训机构官网
  • 镜像网站做排名西安百度网站排名优化
  • 武隆网站建设报价营销推广活动方案
  • 网站建设最新流行网站定制的公司
  • 网站开发实习过程高端网站制作
  • 营销型网站规划步骤公司网络推广的作用
  • 怎么做个网站行业网站有哪些平台
  • 南阳疫情最新情况广州网站建设方案优化
  • 网站企业建设手机地图app下载安装
  • 甘肃省建设工程网站百度竞价排名的优缺点
  • 做网站需要固定ip全网软文推广