IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 十四天算法快速入门第二天之「双指针」 -> 正文阅读

[数据结构与算法]十四天算法快速入门第二天之「双指针」

写在前面:本文题单均来自力扣的算法刷题计划,开这个系列主要是以题目与题解的形式对一些常见、常用算法进行归类和总结,希望在促进自己学习的同时也能帮助到看到这篇文章的大家。另外,本文并非一天一更~

文章目录

题目一:977. 有序数组的平方

题目描述:?

题目分析:

题解代码:

题目二:189. 轮转数组

题目描述:

题目分析:

题解代码:


题目一:977. 有序数组的平方

题目描述:?

题目分析:

这题按照题目意思来就可以了,先把原数组的每一个数平方一下后再用sort()函数快速排序即可。

题解代码:

class Solution {
public:
    vector<int> sortedSquares(vector<int>& nums) {
        for(int i=0;i<nums.size();i++)
        {
            nums[i]*=nums[i];
        }
        sort(nums.begin(),nums.end());
        return nums;
    }
};

题目二:189. 轮转数组

题目描述:

题目分析:

这题我的第一做法使用了两个for循环来解,第一层是次数k,第二层用于数组间元素的交换,然后过样例到35的时候超时了(共38个样例?),故需要换一种时间复杂度更低的做法,借鉴了他人做法后,发现其实是用翻转的方法来解本题。

我们用示例1为例子来展现这个方法:

这个方法一共三次翻转

我们首先翻转整个数组,所以nums = [7,6,5,4,3,2,1],

由于k=3,所以再让第1到第k个元素翻转,nums=[5,6,7,4,3,2,1],

最后再让第k+1到数组的最后一个元素翻转,nums=[5,6,7,1,2,3,4]

便得出了数组向右移动三次的结果。

另外要注意的是:当我们移动数组的次数大于数组长度时,其实相当于又转回来了,固我们的k实际上是取k%nums.size()后的值。

题解代码:

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

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:51:22  更:2022-06-16 21:51:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 0:45:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码