Algorithm

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。

Remove Duplicates from Sorted Array

# 解1,时间复杂度O(n²)
class Solution:   
    def removeDuplicates(self, nums: list) -> int:
        for i in range(len(nums)-1,0,-1):           
            if nums[i] == nums[i-1]:      
                nums.pop(i)                          
        return len(nums)

# 解2,时间复杂度O(n)
class Solution:   
    def removeDuplicates(self, nums: list) -> int:       
        i = 0       
        for j in range(0,len(nums)):           
            if nums[i] != nums[j]:                 
                nums[i+1] = nums[j]               
                i += 1       
        return i+1 if nums else 0

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
输入: [1,2,3,4,5,6,7] 和 k = 3
输出: [5,6,7,1,2,3,4]
解释:向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]

Rotate Array

# 解1,数组拼接,空间复杂度O(n)
class Solution:   
    def rotate(self, nums: list, k: int) -> None:       
        k %= len(nums)       
        nums[:] = nums[-k:] + nums[:-k]       
        return nums

 # 解2,3次翻转,空间复杂度O(1)
class Solution:   
    def rotate(self, nums: list, k: int) -> None:       
        k, start, end = k % len(nums), 0, len(nums) - 1       
        self._reverse(nums, start, end - k)       
        self._reverse(nums, end-k+1, end)       
        self._reverse(nums, start, end)    

    def _reverse(self, nums, start, end):       
        while start < end:           
            nums[start], nums[end] = nums[end], nums[start]           
            start += 1           
            end -= 1

Review

Web Automation: Selenium WebDriver and Python — Getting Started — Part 1

简单的介绍了Web自动化,入门的文章

  • 测试用例准备
  • 安装Python&Selenium&VS code&chromedriver&创建虚拟环境
  • 前两个用例的脚本示例

Tip

打开cmder.exe时报错“failed to copy vendor/conemu.xml.default file to vendor/conemu-maximus5/conemu.xml access denied”
解决方法:原目录是“c:/program files/",创建一个新目录并将cmder文件夹复制进去
参考链接

Share

Teach Yourself Programming in Ten Years

ARTS-week3的更多相关文章

  1. 个人作业-Week3

    个人作业-Week3 1. 软件工程师的成长 同学们在上这门课的时候,还是大三,你的困难和迷茫,别人一定有过.请看看别人怎么学习的,有些是科班,有些是野路子,有些成功,有些失败. 请读完下面所有博客( ...

  2. KDE声音服务器 arts

    KDE声音服务器 arts arts介绍arts是KDE的核心声音系统,支持多音频流.全双工.网络声音请求.ALSA与OSS驱动后端.JACK声音服务器后端等扩展,它既是声音服务器,也 提供一套音频软 ...

  3. Spark小课堂Week3 FirstSparkApp(Dataframe开发)

    Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lamb ...

  4. Spark小课堂Week3 FirstSparkApp(RDD开发)

    Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Qu ...

  5. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. Deep Learning--week1~week3

    week1 一张图片,设像素为64*64, 颜色通道为红蓝绿三通道,则对应3个64*64实数矩阵 为了用向量表示这些矩阵,将这些矩阵的像素值展开为一个向量x作为算法的输入 从红色到绿色再到蓝色,依次按 ...

  7. 20165214 2018-2019-2 《网络对抗技术》Exp1 PC平台逆向破解 Week3

    <网络对抗技术>Exp1 PC平台逆向破解之"逆向及Bof基础实践说明" Week3 一. 实验预习 1.什么是漏洞?漏洞有什么危害? 漏洞就是在计算机硬件.软件.协议 ...

  8. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  9. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. AspNetCore 限流中间件IpRateLimitMiddleware 介绍

    IpRateLimitMiddleware(Github: AspNetCoreRateLimit) 是ASPNETCore的一个限流的中间件,用于控制客户端调用API的频次, 如果客户端频繁访问服务 ...

  2. Linux下配置Golang开发环境

    前几天无意间看到了微信推送的golang开发的消息,看到golang那么牛逼,突然心血来潮想学习一下go.工欲善其事必先利其器,想做go开发,必须先配置好go的开发环境(就像开发Java先安装配置jd ...

  3. javascript jssdk微信上传一张图片的方法

    javascript jssdk微信上传一张图片的方法 <pre> wx.chooseImage({ count: 1, // 默认9 sizeType: ['original', 'co ...

  4. Idea 目录结构下有红色波浪线

    问题截图: 解决方案: Build -> Rebuild Project

  5. CentOS 使用 prename修改文件名大小写的方法

    1. CentOS和ubuntu的rename的命令是不一样的. CentOS的rename 使用的是c语言版本的 而ubuntu的rename使用的是 perl的版本,意味着很多ubuntu上面的扩 ...

  6. C++分治策略实现快速排序

    问题描述: 给定一个未知顺序的n个元素组成的数组,现要利用快速排序算法对这n个元素进行非递减排序. 细节须知: (1)代码实现了利用递归对数组进行快速排序,其中limit为从已有的随机数文件中输入的所 ...

  7. Linux nfs服务讲解

    nfs服务介绍 nfs(Network File System) 网络文件系统,能使用户访问服务器的文件系统,就像访问自己的本机的文件系统一样,并且多个 客户端共享访问该文件系统. 目前nfs服务,较 ...

  8. linux 挂载新的硬盘

    linux 挂载新的硬盘 1.查看硬盘情况,物理盘和分区 fdisk -l 2.分区一个盘,sdb是个还没有分区的硬盘 fdisk /dev/sdb 输入 n p 1 w n 表示新建分区 p 表示分 ...

  9. linux设置定时任务的方法(自己总结)

    Linux设置定时任务步骤 linux设置定时任务的关键字是:crontab 1:查看现在已经有的定时任务的命令是  crontab -l,执行命令如下图: 2:新建定时任务的命令是:crontab ...

  10. vue2.0版本中v-html中过滤器的使用

    Vue 2.0 不再支持在 v-html 中使用过滤器 解决方法: 1:全局方法(推荐) 2:computed 属性 3:$options.filters(推荐) 1:使用全局方法: 可以在 Vue ...