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

国外网站dns在线解析旅游网站的设计思路

国外网站dns在线解析,旅游网站的设计思路,linux配置wordpress,直播传媒公司排名前缀和 前缀和指数组的前 N项之和,是个比较基础的算法 例题 面试题 17.05. 字母与数字 给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。 返回该子数组,若存在多个最长子数组,返回左…

前缀和

前缀和指数组的前 N项之和,是个比较基础的算法

例题

面试题 17.05. 字母与数字

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。
返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。

示例 1:
输入: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”,“H”,“I”,“J”,“K”,“L”,“M”]
输出: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”]

示例 2:
输入: [“A”,“A”]
输出: []

提示:
array.length <= 100000

思路

使用前缀和+哈希
为字母则取1,数字为-1,即要求和为0的最大子数组。
前缀和表示第i个数及之前的所有数的和。哈希存储前缀和c第一次出现的位置i,循环时维护一个maxlen表示最大的子数组长度,start表示最长子数组起始下标。
初始化时,前缀和为0,下标为-1。遍历到i时,前缀和为sum,如果此时哈希表中没有关于前缀和为sum的记录,则更新indices[sum]=i。如果已有,则对比maxlen和i-indices[sum],如果i-indices[sum]较大,则maxlen更新为i-indices[sum],start更新为indices[sum]+1。
如果maxlen不为0,返回array中array[start]到array[start+maxlen]的部分。

代码

class Solution {
public:vector<string> findLongestSubarray(vector<string>& array) {int n=array.size();int sum=0;int maxlen=0;int start=-1;unordered_map<int,int> indices;indices[0]=-1;for(int i=0;i<n;i++){if(isalpha(array[i][0])){sum++;}else{sum--;}if(indices.find(sum)==indices.end()){indices[sum]=i;}else{if(i-indices[sum]>maxlen){maxlen=i-indices[sum];start=indices[sum]+1;}}}if(maxlen==0) return {};return vector<string>(array.begin()+start,array.begin()+start+maxlen);}
};

209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。
找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

示例 1:
输入:target = 7, nums = [2,3,1,2,4,3]
输出:2
解释:子数组 [4,3] 是该条件下的长度最小的子数组。

示例 2:
输入:target = 4, nums = [1,4,4]
输出:1

示例 3:
输入:target = 11, nums = [1,1,1,1,1,1,1,1]
输出:0

提示:
1 <= target <= 109
1 <= nums.length <= 105
1 <= nums[i] <= 105

进阶:
如果你已经实现 O(n) 时间复杂度的解法, 请尝试设计一个 O(n log(n)) 时间复杂度的解法。

思路

首先计算前缀和,presum[i]表示从0加到i-1的和,
对于遍历每个子数组的起始点nums[i],用二分搜索找到presum[j]-presum[i]大于或等于target的第一个下标j,遍历过程中维护最短子数组的长度minlen。

或者用滑动窗口做

代码

//前缀和+二分搜索
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n=nums.size();int minlen=n+1;vector<int> presum(n+1,0);//presum[i]是从0加到i-1for(int i=0;i<n;i++){presum[i+1]=presum[i]+nums[i];}for(int i=0;i<n;i++){int l=i+1,r=n;while(l<r){int m=(l+r)/2;if(presum[m]-target<presum[i]){l=m+1;}else{r=m;}}if(presum[l]-target>=presum[i]){minlen=min(l-i,minlen);}}if(minlen>n) return 0;else return minlen;}
};
class Solution {
public:int minSubArrayLen(int target, vector<int>& nums) {int n=nums.size();int l=0,r=0;int sum=nums[0],minlen=n+1;while(r<n){while(sum<target&&r<n){if(++r<n) sum+=nums[r];}if(sum>=target){minlen=min(minlen,r-l+1);sum-=nums[l];l++;}else break;}return minlen<=n?minlen:0;}
};
http://www.yayakq.cn/news/999724/

相关文章:

  • 韩国明星都在那个网站做直播怎么做百度里面自己的网站
  • 云开发网站google 浏览器
  • 您提供的产品已经提交过网站备案wordpress怎么添加标签页
  • 重庆网站建设费用网络服务器可提供的常见服务有什么、什么、什么和什么服务
  • 做外贸网站报价企业邮箱手机怎么登录
  • 上海建设厅焊工证查询网站徐州做网站哪家好
  • 网站开发培训费自己做网站用php最快么
  • asp.net网站和空网站有什么区别珠海市工程造价信息网
  • 做论坛网站凡客沙发是几线品牌
  • 网站后台发布图片upload failediis网站服务器 建立出现问题
  • thinkphp 网站源码营销点子
  • 一起做网商网站怎么样nginx wordpress多个站点
  • 网站设置右击不了如何查看源代码58同城旧房翻新
  • 网站开发公司会计企业内部网站模板
  • 网站建设要用H5吗wordpress表情不显示
  • 定制型网站制作装修设计公司图片
  • 免费企业网站如何建设网站栅格布局
  • 网站开发工具.枫子科技长沙百姓网招聘信息
  • p2p网站开发的流程图杭州企业网站建设 哪里好
  • 怎么用PS做网站广告图做网站都是花钱吗
  • jsp网站开发中js的问题网店装修模板制作
  • 做a免费视频在线观看网站石家庄做网站哪家公司好
  • 网站可以做哪些内容怎样在手机上网站建设
  • 旅游网站首页seo免费推广软件
  • 阿里域名注册网站医疗器械类网站icp备案前置审批
  • 广州游戏网站建设恶意 镜像网站
  • 怎嘛做网站万户做的网站安全吗
  • 卖鞋的网站建设思路河南招标信息网
  • 营销型外贸网站建设软件数码网站模板
  • 网站建设方式优化网页制作专业软件