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

微网站 pc网站同步/长沙靠谱关键词优化公司电话

微网站 pc网站同步,长沙靠谱关键词优化公司电话,做全景图有哪些网站,外地公司做的网站能备案吗【力扣】189. 轮转数组 文章目录 【力扣】189. 轮转数组1. 题目介绍2. 解法2.1 方法一:不太正规,但是简单2.2 方法二:使用额外的数组2.3 方法三:环状替换2.4 方法四:数组翻转 3. Danger参考 1. 题目介绍 给定一个整数…

【力扣】189. 轮转数组

文章目录

  • 【力扣】189. 轮转数组
    • 1. 题目介绍
    • 2. 解法
      • 2.1 方法一:不太正规,但是简单
      • 2.2 方法二:使用额外的数组
      • 2.3 方法三:环状替换
      • 2.4 方法四:数组翻转
    • 3. Danger
    • 参考

1. 题目介绍

给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。

在这里插入图片描述

2. 解法

2.1 方法一:不太正规,但是简单

class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""k = k % len(nums)for i in range(k):tem = nums.pop()nums.insert(0, tem)return nums

2.2 方法二:使用额外的数组

  • 我们可以使用额外的数组来将每个元素放至正确的位置。用 n 表示数组的长度,我们遍历原数组,将原数组下标为 i 的元素放至新数组下标为(i+k) mod n 的位置,最后将新数组拷贝至原数组即可。
class Solution {
public:void rotate(vector<int>& nums, int k) {int n = nums.size();vector<int> newArr(n);for (int i = 0; i < n; ++i) {newArr[(i + k) % n] = nums[i];}nums.assign(newArr.begin(), newArr.end());}
};

2.3 方法三:环状替换

  • 需要了解一个定理,环的个数等于:gcd(k, n)
    我们可以使用额外的数组来将每个元素放至正确的位置。用 nnn 表示数组的长度,我们遍历原数组,将原数组下标为 i 的元素放至新数组下标为(i+k) mod n 的位置,最后将新数组拷贝至原数组即可。
class Solution {
public:void rotate(vector<int>& nums, int k) {int n = nums.size();k = k % n;int count = gcd(k, n);for (int start = 0; start < count; ++start) {int current = start;int prev = nums[start];do {int next = (current + k) % n;swap(nums[next], prev);current = next;} while (start != current);}}
};

2.4 方法四:数组翻转

在这里插入图片描述

class Solution {
public:void reverse(vector<int>& nums, int start, int end) {while (start < end) {swap(nums[start], nums[end]);start += 1;end -= 1;}}void rotate(vector<int>& nums, int k) {k %= nums.size();reverse(nums, 0, nums.size() - 1);reverse(nums, 0, k - 1);reverse(nums, k, nums.size() - 1);}
};

3. Danger

力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。

  • 据了解到的情况,Easy题和Medium 题在面试中比较常见,通常会以手写代码之类的形式出现,您需要对问题进行分析并给出解答,并于面试官进行交流沟通,有时还会被要求分析时间复杂度8与空间复杂度°,面试官会通过您对题目的分析解答,了解您对常用算法的熟悉程度和您的程序实现功底。
  • 而在一些对算法和程序实现功底要求较高的岗位,Hard 题也是很受到面试官的青睐,如果您在面试中成功Bug-Free出一道Hard题,我们相信您一定会给面试官留下很深刻的印象,并极大增加拿到Offer的概率,据相关人士统计,如果您在面试成功解出一道Hard题,拿不到Offer的概率无限接近于0。
  • 所以,力扣中Easy和Medium相当于面试中的常规题,而Hard 则相当于面试中较难的题,解出—道Hard题,Offer可以说是囊中之物。

参考

【1】链接:https://leetcode.cn/problems/rotate-array/ 来源:力扣(LeetCode)

http://www.jinmujx.cn/news/96.html

相关文章:

  • 人设生成器网站/怎么把平台推广出去
  • 溧阳手机网站哪里做/学it什么培训机构好
  • 找人网站/网页模板怎么用
  • 揭阳网站制作案例/如何在各种网站投放广告
  • 网站免费正能量入口/百度首页推荐关不掉吗
  • 网站建设步骤及分工/优秀软文范例100字
  • 对网站进行优化/网站排名快速提升
  • 武城网站建设费用/品牌营销公司
  • 佛山市企业网站建设平台/太原关键词优化软件
  • 做网站大概价格/南昌seo排名优化
  • 做网站的公司有前途吗/如何制作网站和网页
  • 免费建站的站点网站/游戏推广是什么工作
  • 无锡企业网站seo/百度广告投诉电话
  • 网站代码怎么改/个人在线做网站免费
  • 网站首页html/怎样打百度人工客服热线
  • 深圳市企业网站建设价格/整合营销理论主要是指
  • 个人主页页面/seo优化招商
  • 工信部网站备案查询步骤详解/公司网站
  • 做航模的网站/网销怎么做
  • 网站pv统计方法/推广策划方案
  • tornado 做网站/seo刷词工具在线
  • 网站建设和维护合同/湖南seo优化首选
  • 淘宝网站建设哪个类目/seo公司
  • 做网站怎么偷源码做网站/阿里seo排名优化软件
  • 电商网站建设与运营/网站管理
  • 文学投稿网站平台建设/好f123网站
  • 做网站策划需要用什么软件/bt磁力搜索引擎在线
  • 沈阳网站建设制作公司/友情链接怎么设置
  • 学校资源网站的建设方案/东莞seo推广机构帖子
  • 建设部资质上报系统网站/重庆百度推广优化