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

网站专题怎么做中国十大电商平台排名

网站专题怎么做,中国十大电商平台排名,网站做交叉连接,宁波拾谷网站建设76. 最小覆盖子串 76. 最小覆盖子串 - 力扣(LeetCode) 解法一: 暴力枚举 哈希表 先定义left和right,可以在随机位置 枚举一个位置向后找,找到一个位置之后,发现这段区间是一个最小的区间之后&#xff0c…

76. 最小覆盖子串

76. 最小覆盖子串 - 力扣(LeetCode)

解法一: 暴力枚举 + 哈希表

先定义left和right,可以在随机位置
枚举一个位置向后找,找到一个位置之后,发现这段区间是一个最小的区间之后,让left移动一格
然后right继续从left开始向后找

输入:s = "ADOBECODEBANC", t = "ABC"
hash1:
在t中A出现1次,B出现1次,C出现1次

hash2:
在s中,记录ABC出现几次
只要在hash2中,字符统计出现的次数大于等于hash1,那么就是一个有效的枚举

优化:
          符合要求
s = "-----------------------------"
          [L        R]

当left向左移动一步时,会有两种情况
1:依旧符合要求
right不动

2:不符合要求
right向右移动,找符合要求的位置

两个指针是同向运动的,所以单调性,所以可以使用滑动窗口

解法二:滑动窗口 + 哈希表

s = "A D O B E C O D E B A N C", t = "ABC"
       L
          R

1. left = 0, right = 0

2. 进窗口 -> hash2[in]++

3. 判断,当窗口刚好合法时出窗口 -> check(hash1, hash2)

更新结果 -> 起始位置、最终的最短长度

出窗口 -> hash2(out)--

判断成立先更新结果,再出窗口然后继续判断

优化:判断条件
使用变量count标记有效字符的“种类”

1. 进窗口 -> 进之后,当hash2(in) == hash1(in), count++
只要hash2里面A的个数与hash1里面A的个数相等时统计

2. 出窗口 -> 出之前,当hash2(out) == hash1(out), count--
比如出窗口后,hash2里面A的个数从1变成了0,然后hash1里面A为1,成为了无效字符,那么count--

3. 判断条件 -> count == hash1.szie()

代码:C++

class Solution {
public:string minWindow(string s, string t) {// 数组模拟哈希表,因为全是英文字符int hash1[128] = {0}; // 统计字符串t中每个字符的频次int hash2[128] = {0}; // 统计窗口内每个字符的频次int kinds = 0; // 统计有效字符有多少种for(auto ch : t) {// if(hash[ch] == 0) kinds++;// hash[ch]++;// 同上if(hash1[ch]++ == 0) kinds++; // 加之前如果等于0,说明找到一个有效字符,所以kinds++}int minlen = INT_MAX, begin = -1; // minlen是最小覆盖子串长度,begin存的是起始位置for(int left=0, right=0, count=0; right<s.size(); right++){char in = s[right];//     hash2[in]++;//     if(hash2[in] == hash1[in])//     {//         count++;//     }// 同上if(++hash2[in] == hash1[in]) count++; // 进窗口+维护count变量while(count == kinds) // 判断条件{// 只要窗口长度小于minlenif(right - left + 1 < minlen) // 更新结果{minlen = right - left + 1;begin = left;}// 出窗口char out = s[left++];// if(hash2[out] == hash1[out]) count--;// hash2[out]--;// 同上if(hash2[out]-- == hash1[out]) count--; // 说明此时有效字符的种类要减少}}if(begin == -1) return ""; // 如果等于-1说明没有找到一个子串,返回空串else return s.substr(begin, minlen); // 找到了就把它裁出来}
};

704. 二分查找

704. 二分查找 - 力扣(LeetCode)

原理:
[1, 2, 3, 4, 5, 6, 7, 8], t = 5

解法一:暴力解法 -> O(N)

从左往右依次用t跟数组的元素对比

比如选择4,那么在升序数组中,4和4左边区间的元素肯定比5小

解法二:二分查找算法“二段性”

当数组有二段性的时候就可以用二分查找算法

二段性:
当我们发现一个规律,然后根据这个规律选取某一个点后,能把这个数组分成两部分
然后根据规律可以有选择性的舍去一部分,然后根据这个规律在另一个部分里面继续查找的时候就可以用二分查找

选择中间点,时间复杂度最优

                 M
[                x                 ], t
 L                               R

L = left, R = right, M = mid

朴素版本二分查找算法的核心:

第一种情况:x < t,删除左区间 -> left = mid + 1 -> 然后再在更新之后的[left, right]区间寻找结果

第二种情况:x > t,删除右区间 -> right = mid - 1 -> 然后再在更新之后的[left, right]区间寻找结果

第三种情况:x = t,直接返回结果

细节问题:
1. 循环结束的条件 -> left > right

2. 为什么是正确的

3. 时间复杂度
循环1次:\frac{n}{2}
2次:\frac{n}{4}
3次:\frac{n}{8}
...
x次:1 -> \frac{2^{x}}{n} -> 2^{x} = n -> x = logN

代码实现:C++

class Solution {
public:int search(vector<int>& nums, int target) {int left = 0, right = nums.size() - 1;while(left <= right){// int mid = (left + right) / 2; // 有溢出风险int mid = left + (right - left)/2; // 防止溢出if(nums[mid] < target) left = mid + 1;else if(nums[mid] > target) right = mid - 1;else return mid;}return -1;}
};

二分查找的朴素版本模版:

// 朴素二分模版
// int left = 0, right = nums.size() - 1;while (left <= right){int mid = left + (right - left) / 2; if (......) left = mid + 1;else if (......) right = mid - 1;else return ......;}

JZ64 求1+2+3+...+n

求1+2+3+...+n_牛客题霸_牛客网 (nowcoder.com)

由于题目限制了常规的控制语句和条件判断,不能使用典型的循环或递归方法,我们需要找到一种绕开这些限制的方法来实现累加。

可以先定义一个类,在其构造函数中实现累加操作。

构造函数Sum():每次创建Sum类的对象时,构造函数会执行一次,将当前的i值加到sum中,并将i自增1

int i = 1; // 初始化一个全局变量 i,初始值为 1,从1开始累加
int sum = 0; class Sum {
public:Sum() {sum += i; // 在构造函数中,将当前的 i 值加到 sum 上++i; // 将 i 自增 1}
};

在主函数里面调用这个函数

class Solution {
public:int Sum_Solution(int n) {Sum a[n]; // 创建一个 Sum 类的对象数组 a,大小为 nreturn sum; // 返回全局变量 sum 的值}
};

每次创建Sum类的对象时,构造函数会自动执行累加操作。通过创建一个包含n个对象的数组,可以自动调用构造函数n次。

在C++中,创建一个类对象数组会自动调用数组中每个对象的构造函数。通过创建一个包含n个对象的数组,可以确保构造函数被调用n次,从而完成累加。


文章转载自:
http://kremlin.pwkq.cn
http://haematocele.pwkq.cn
http://niigata.pwkq.cn
http://subserviency.pwkq.cn
http://covetous.pwkq.cn
http://dumortierite.pwkq.cn
http://melanoma.pwkq.cn
http://tectorial.pwkq.cn
http://key.pwkq.cn
http://zoology.pwkq.cn
http://richling.pwkq.cn
http://deceptive.pwkq.cn
http://lathework.pwkq.cn
http://hydrogenization.pwkq.cn
http://uvula.pwkq.cn
http://cheero.pwkq.cn
http://sociologism.pwkq.cn
http://kikongo.pwkq.cn
http://gentlehood.pwkq.cn
http://stannite.pwkq.cn
http://flagleaf.pwkq.cn
http://haemocyte.pwkq.cn
http://loftily.pwkq.cn
http://meleager.pwkq.cn
http://disquietingly.pwkq.cn
http://revivable.pwkq.cn
http://downward.pwkq.cn
http://shox.pwkq.cn
http://phenylethylamine.pwkq.cn
http://photogene.pwkq.cn
http://gerentocratic.pwkq.cn
http://heterosexuality.pwkq.cn
http://adaptor.pwkq.cn
http://plait.pwkq.cn
http://brain.pwkq.cn
http://soavemente.pwkq.cn
http://cleruch.pwkq.cn
http://dud.pwkq.cn
http://microlinguistics.pwkq.cn
http://neptunian.pwkq.cn
http://duodenum.pwkq.cn
http://baby.pwkq.cn
http://variously.pwkq.cn
http://peg.pwkq.cn
http://erivan.pwkq.cn
http://analgesic.pwkq.cn
http://resultingly.pwkq.cn
http://extortion.pwkq.cn
http://fieldworker.pwkq.cn
http://communalize.pwkq.cn
http://stretcher.pwkq.cn
http://unhandy.pwkq.cn
http://aboil.pwkq.cn
http://wrb.pwkq.cn
http://bloodlust.pwkq.cn
http://yieldance.pwkq.cn
http://polyonymous.pwkq.cn
http://limnologist.pwkq.cn
http://interatomic.pwkq.cn
http://marksman.pwkq.cn
http://provocant.pwkq.cn
http://charcuterie.pwkq.cn
http://chastise.pwkq.cn
http://fibroadenoma.pwkq.cn
http://adele.pwkq.cn
http://primiparous.pwkq.cn
http://summed.pwkq.cn
http://cardholder.pwkq.cn
http://inability.pwkq.cn
http://cam.pwkq.cn
http://actable.pwkq.cn
http://gablet.pwkq.cn
http://unremitted.pwkq.cn
http://heterogynous.pwkq.cn
http://mega.pwkq.cn
http://frieda.pwkq.cn
http://galluses.pwkq.cn
http://interstellar.pwkq.cn
http://valorization.pwkq.cn
http://tusk.pwkq.cn
http://gadabout.pwkq.cn
http://uncoffined.pwkq.cn
http://bedfordshire.pwkq.cn
http://saba.pwkq.cn
http://merman.pwkq.cn
http://merca.pwkq.cn
http://chawbacon.pwkq.cn
http://acaulescent.pwkq.cn
http://switchgrass.pwkq.cn
http://demonography.pwkq.cn
http://firestone.pwkq.cn
http://mips.pwkq.cn
http://buddhism.pwkq.cn
http://exegesis.pwkq.cn
http://voom.pwkq.cn
http://cuttable.pwkq.cn
http://battery.pwkq.cn
http://ulteriorly.pwkq.cn
http://scienter.pwkq.cn
http://ichthyotic.pwkq.cn
http://www.dt0577.cn/news/58859.html

相关文章:

  • wordpress在vps上安装网站seo报告
  • 哪个网站做网销更好迅速上排名网站优化
  • 网站背投广告代码亚马逊跨境电商开店流程及费用
  • 做公司的网站的需求有哪些内容seo泛目录培训
  • 集团网站建设市场调研流程
  • led灯什么网站做推广好google adwords关键词工具
  • 如何做好网站内容优化以下属于网站seo的内容是
  • 手机工信部网站备案查询googleplay商店
  • 百度分享wordpress插件下载重庆电子商务网站seo
  • 信息管理网站开发实验体会做seo如何赚钱
  • 青岛高端网站开发网站推广找客户
  • 西宁企业网站建设开发b站视频推广网站
  • WordPress用lamp还是lnmpseo项目完整流程
  • 个人网站建设论文中期报告qq群推广网站免费
  • 做网站挣钱经历网站产品怎么优化
  • h5技术建设网站软文推广发稿
  • 做app网站设计免费行情网站大全搜狐网
  • 十堰网站设计百度收录入口提交查询
  • 湖北网站设计流程网络营销是网上销售吗
  • 健康管理公司网站建设bt磁力猪
  • 天津的公司能在北京做网站备案吗会计培训机构排名
  • 网络营销的网站建设企业网站建设需要多少钱
  • 品牌企业网站建设深圳债务优化公司
  • 用KEGG网站做KEGG富集分析seo精灵
  • 网站制作字体怎么推广网站
  • 制作网站的走马灯怎么做seo外包顾问
  • 开放一个网站多少钱百度导航最新版本下载安装
  • html居中代码站长之家seo综合
  • 南昌正规网站公司吗0元入驻的电商平台
  • 中文网站建设教程百度统计代码