数组刷题集

简介: 数组刷题集

概要

记录一些数组相关的刷题集。

数组数据结构早就写过了,一直没有写相关的刷题集。今天补上。

26. 删除有序数组中的重复项

leetcode26题

题目如上图;也可以去leetcode 看下这个题目。

代码Python

Python代码实现

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        slow, fast = 0, 1
        while fast < len(nums):
            if nums[fast] != nums[slow]:
                slow = slow + 1
                nums[slow] = nums[fast]
            fast = fast + 1
        return slow + 1

189. 轮转数组

leetcode 189题

题目如上图,看不清,可以去看下leetcode。代码如下。

代码Python

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        """
        Do not return anything, modify nums in-place instead.
        """
        n = len(nums)
        nums[:] = nums[-k % n:] + nums[:-k % n]

小结

数组刷题总结

以前是用c++写的,这次专门用python写了一遍。其实,思路整体没变,第一题,是快慢指针;第二题,是一个算法。快慢指针,都是一个思路,2个指针,往后循环,框架写出来,直接套公式;第二题这种算法,就是递推公式推出来,就好了。好了,翻篇。

相关文章
|
算法
算法刷题-数组
算法刷题-数组
62 0
算法刷题-数组
|
5月前
|
C语言 C++ 索引
剑指 Offer(第 2 版)刷题 | 04. 二维数组中的查找
本文是针对《剑指 Offer(第 2 版)》中 "二维数组中的查找" 问题的刷题记录,尝试了二分法查找并记录了遇到的索引越界错误,同时推荐了类二叉树或者线性查找的解法。
剑指 Offer(第 2 版)刷题 | 04. 二维数组中的查找
|
算法
代码随想录刷题-数组双指针
代码随想录刷题-数组双指针
64 0
|
9月前
|
算法 索引
六六力扣刷题数组之二分查找
六六力扣刷题数组之二分查找
66 0
剑指offer(数组相关面试题)
剑指offer(数组相关面试题)
LeetCode刷题:数组快慢指针法
快慢指针法指的就是操作数组、链表及字符串等使用两个起点相同但前进步数不同的指针。相对于利用多次循环解决问题,快慢指针法的时间复杂度较低,执行效率高。对于快慢指针法根据题目可供调整的无非就为两点: 起点 前进步数 快慢指针法起点位置的选择通常是采取一个 if else 语句进行判断,而在未达到正确起点位置时,两个指针的前进步数将保持一致。而实现快慢指针前进步数不一致移动的方法通常是采取一个 for 循环进行移动指针,注意越界问题。此处 for 循环迭代有两种方案: 既可以设置快慢指针的步数一致,再在 i
108 0
|
算法 Linux C语言
几道数组相关的面试题
几道数组相关的面试题
97 0
几道数组相关的面试题
|
存储
【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!
【leetcode合集】如何知道自己是否掌握了数组与链表?试试这几道题目吧!
75 0
|
算法 数据可视化
05数据结构与算法刷题之【数组】篇
05数据结构与算法刷题之【数组】篇
05数据结构与算法刷题之【数组】篇