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

xp系统做局域网内网站西安电商网站开发

xp系统做局域网内网站,西安电商网站开发,本地服务器如何做网站,徐州企业制作网站目录 一、存储方式 二、二分查找 三:数组的算法操作:双指针算法 四、数组操作:滑动窗口 视频讲解地址:动态-哔哩哔哩 一、存储方式 在python中的list本质是动态数组,支持自动扩容。还有一个numpy数组,…

目录

一、存储方式

二、二分查找

三:数组的算法操作:双指针算法

四、数组操作:滑动窗口


视频讲解地址:动态-哔哩哔哩

一、存储方式

在python中的list本质是动态数组,支持自动扩容。还有一个numpy数组,二维支持连续内存储存

数组是存放在连续内存空间上的相同类型数据的集合,但是对于二维的数组在c或c++中内存是完全连续的,在java或python中是有多个独立的一维数组组成内存可能不连续(numpy除外)。

数组下标是从0开始的

因为数组的储存方式是连续的,那么我们删除或者添加元素的时候就要移动其他元素的地址,导致时间复杂度有o(n),但是访问方便,通过下标直接访问,时间复杂度只有o(1)。

二、二分查找

704. 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1


示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

基于分治策略,通过不断的将有序的数组分成两半,缩小搜索范围,直到找到目标元素或确认不存在。时间复杂度为O(log n),效率远超线性查找

class Solution:def search(self, nums: List[int], target: int) -> int:left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] == target:return mid        # 找到目标,返回索引elif nums[mid] < target:left = mid + 1    # 目标在右半部分else:right = mid - 1   # 目标在左半部分return -1                 # 未找到到

相关题目leetcode704 

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1

示例 1:

输入: nums = [-1,0,3,5,9,12], target = 9
输出: 4
解释: 9 出现在 nums 中并且下标为 4

示例 2:

输入: nums = [-1,0,3,5,9,12], target = 2
输出: -1
解释: 2 不存在 nums 中因此返回 -1

class Solution:def search(self, nums: List[int], target: int) -> int:i, j = 0, len(nums) - 1while i <= j:m = (i + j) // 2if nums[m] < target: i = m + 1elif nums[m] > target: j = m - 1else: return mreturn -1

三:数组的算法操作:双指针算法

以leetcode977. 有序数组的平方为例:

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。

    示例 1:

    输入:nums = [-4,-1,0,3,10]
    输出:[0,1,9,16,100]
    解释:平方后,数组变为 [16,1,0,9,100]
    排序后,数组变为 [0,1,9,16,100]

    示例 2:

    输入:nums = [-7,-3,2,3,11]
    输出:[4,9,9,49,121]
    
    class Solution:def sortedSquares(self, nums: List[int]) -> List[int]:l, r, i = 0, len(nums)-1, len(nums)-1res = [float('inf')] * len(nums) # 需要提前定义列表,存放结果while l <= r:if nums[l] ** 2 < nums[r] ** 2: # 左右边界进行对比,找出最大值res[i] = nums[r] ** 2r -= 1 # 右指针往左移动else:res[i] = nums[l] ** 2l += 1 # 左指针往右移动i -= 1 # 存放结果的指针需要往前平移一位return res

    四、数组操作:滑动窗口

    • 1456. 定长子串中元音的最大数目 1263

    给你字符串 s 和整数 k 。

    请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。

    英文中的 元音字母 为(aeiou)。

    示例 1:

    输入:s = "abciiidef", k = 3
    输出:3
    解释:子字符串 "iii" 包含 3 个元音字母。
    

    示例 2:

    输入:s = "aeiou", k = 2
    输出:2
    解释:任意长度为 2 的子字符串都包含 2 个元音字母。
    class Solution:def maxVowels(self, s: str, k: int) -> int:i,j=0,0res=0yuanyin=['a', 'e', 'i', 'o', 'u']ans=0while j<len(s):if s[j] in yuanyin:res+=1ans=max(ans,res)if j-i+1>=k:if s[i] in yuanyin:res-=1ans=max(ans,res)i+=1j+=1return ans
    

    http://www.dtcms.com/wzjs/729391.html

    相关文章:

  • 个人建设电影网站备案深圳市手机网站建设报价
  • 包头做网站的公司招聘信息为什么都用dw做网站
  • 网站建设维护教程凉山州建设局网站
  • 国内外c2c网站有哪些a5wordpress主题
  • 如何申请国外网站做网站在自己电脑建立虚拟机
  • 自学做网站要多久网站开发的关键技术与难点
  • 网站收录引擎虚拟主机可以建设网站吗
  • 手机网站用什么制作新手做网站的注意事项
  • 水贝做网站公司做网站图片尺寸
  • 腾讯做网站建筑企业平台
  • 网站开发税率是多少手机免费网站
  • 铜陵电子商务网站建设公司网站建设费用记什么科目
  • 上海工商网站查询企业信息网线制作过程简述
  • 淄博网站建设电话怎么改版网站
  • 公司管理系统网站模板下载网站开发前景与趋势如何
  • 电子商务网站建设管理答案成都网站制作设计公司
  • 汕头模板开发建站网站班级文化建设方案
  • 新闻资讯网站备案做网站费用会计分录
  • 大连唐朝网站优化公司三网合一网站建设方案
  • 天津技术网站建设中国建设承包商网站
  • 网站优化的推广物流网站建设合同范本
  • 河南5G网站基站建设信息网站建设 李奥贝纳
  • 营销网站建设都是专业技术人员ddos的wordpress插件
  • 桂林网站制作人才招聘新手运营从哪开始学
  • 个人网站制作软件公众号文章怎么添加小程序
  • html5可不可以建设手机网站福建省建设质量安全协会网站
  • 怎么在网站添加关键词开一个网站多少钱
  • 邢台市住房和城乡建设局网站帮别人做违法网站
  • 室内设计联盟电脑版网站建设优化服务精英
  • 创建网站英文在上海哪个网站比较好