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

阿里云代理网站怎么做北京营销型网站

阿里云代理网站怎么做,北京营销型网站,房屋租赁网站建设管理,怎样黑进别人的网站目录 一、存储方式 二、二分查找 三:数组的算法操作:双指针算法 四、数组操作:滑动窗口 视频讲解地址:动态-哔哩哔哩 一、存储方式 在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/512205.html

    相关文章:

  • 手机自己做网站吗小程序推广引流
  • 广州怎么建设一个网站排名优化网站建设
  • 江夏区做网站网站销售怎么推广
  • 做旅游的网站在哪里做网络广告的发布方式包括
  • 天蓝色网站软文网官网
  • 如今做那个网站能致富外链查询
  • 转运网站开发百度最新版app下载安装
  • 保险网站建设优缺点百度怎么做推广
  • 自营店网站建设最常用的网页制作软件
  • 呼市做开发网站的公司百度站长中心
  • 客户做网站需要提供什么优化大师下载安装app
  • 著名设计案例网站网络优化工程师是干什么的
  • 成都品牌设计关键词优化是怎么做的
  • 北京做网站多少钱合理网站seo推广seo教程
  • 网站建设服务合同交印花税吗域名解析ip138在线查询
  • 中国建设工程造价管理协会网站查询市场调研报告1500字
  • 做网站排名需要多少钱江苏疫情最新消息
  • wordpress 下载模板站电商平台有哪些?
  • 工信部网站域名备案查询系统找小网站的关键词
  • 免费毕业设计网站建设河北seo基础教程
  • 多语言网站建设价格免费网络推广软件
  • 设计模板网站长春模板建站代理
  • php购物网站开发实例源码广州新闻播报
  • 鞍山做网站或百度推销广告一年多少钱
  • 如何快速建立一个网站东莞百度推广优化排名
  • 怎么利用网站做产品推广女生seo专员很难吗为什么
  • ui设计师面试问题seo网站建设优化
  • 网站图标可以用ps 做吗在线网站seo优化
  • 快速网站备案多少钱产品推广软件有哪些
  • 嘉兴网站建议搜索引擎营销是什么