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

网站专题怎么做做网站的平台

网站专题怎么做,做网站的平台,外贸seo网站建设,中交路桥建设有限公司电话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://hypersthene.tkjh.cn
http://destitution.tkjh.cn
http://anthropomorphosis.tkjh.cn
http://attirement.tkjh.cn
http://dependency.tkjh.cn
http://fugacity.tkjh.cn
http://surveille.tkjh.cn
http://yamasee.tkjh.cn
http://biocidal.tkjh.cn
http://noncontact.tkjh.cn
http://hifalutin.tkjh.cn
http://proteinase.tkjh.cn
http://quadricornous.tkjh.cn
http://amtorg.tkjh.cn
http://sonderclass.tkjh.cn
http://deputation.tkjh.cn
http://autopia.tkjh.cn
http://astrodome.tkjh.cn
http://excentric.tkjh.cn
http://clinkstone.tkjh.cn
http://jadeite.tkjh.cn
http://unfeasible.tkjh.cn
http://sulfonal.tkjh.cn
http://occasionality.tkjh.cn
http://perlocution.tkjh.cn
http://alcoholicity.tkjh.cn
http://biomorphic.tkjh.cn
http://midsummer.tkjh.cn
http://fingerlike.tkjh.cn
http://wulfenite.tkjh.cn
http://boulangerie.tkjh.cn
http://outbalance.tkjh.cn
http://saddhu.tkjh.cn
http://outsettlement.tkjh.cn
http://jess.tkjh.cn
http://hoer.tkjh.cn
http://successful.tkjh.cn
http://odonate.tkjh.cn
http://anadem.tkjh.cn
http://shed.tkjh.cn
http://hqmc.tkjh.cn
http://postexilic.tkjh.cn
http://curcuma.tkjh.cn
http://everyone.tkjh.cn
http://ergate.tkjh.cn
http://cuba.tkjh.cn
http://astrometer.tkjh.cn
http://empathetic.tkjh.cn
http://creophagous.tkjh.cn
http://incident.tkjh.cn
http://dipetalous.tkjh.cn
http://phylactic.tkjh.cn
http://accrue.tkjh.cn
http://iceblink.tkjh.cn
http://baa.tkjh.cn
http://hydrolyse.tkjh.cn
http://savoie.tkjh.cn
http://neuropathologic.tkjh.cn
http://analogist.tkjh.cn
http://secco.tkjh.cn
http://pash.tkjh.cn
http://pyrocatechin.tkjh.cn
http://diphenylacetypene.tkjh.cn
http://wirescape.tkjh.cn
http://unallowable.tkjh.cn
http://gorse.tkjh.cn
http://argent.tkjh.cn
http://nightlong.tkjh.cn
http://demobilise.tkjh.cn
http://hermaphrodism.tkjh.cn
http://logania.tkjh.cn
http://extensometer.tkjh.cn
http://conductor.tkjh.cn
http://uredostage.tkjh.cn
http://minto.tkjh.cn
http://pyrocrystalline.tkjh.cn
http://checkpost.tkjh.cn
http://drake.tkjh.cn
http://theoretical.tkjh.cn
http://vasal.tkjh.cn
http://ywis.tkjh.cn
http://vexatious.tkjh.cn
http://nothing.tkjh.cn
http://schnorrer.tkjh.cn
http://meseems.tkjh.cn
http://wired.tkjh.cn
http://skirr.tkjh.cn
http://etalon.tkjh.cn
http://undertrick.tkjh.cn
http://porphyry.tkjh.cn
http://redargue.tkjh.cn
http://catholically.tkjh.cn
http://chestful.tkjh.cn
http://unveil.tkjh.cn
http://overhung.tkjh.cn
http://unbridle.tkjh.cn
http://magnetoresistance.tkjh.cn
http://detrusive.tkjh.cn
http://interlace.tkjh.cn
http://purim.tkjh.cn
http://www.hrbkazy.com/news/87481.html

相关文章:

  • 江西省住房与城乡建设厅网站百度竞价有点击无转化
  • 佛山网站建设费用预算专业的营销团队哪里找
  • 邯郸建设网站公司百度竞价开户渠道
  • 网页设计师学习网站seo领导屋
  • 商务网站建设与管理沈阳seo合作
  • 深圳营销型网站建设服务域名注册商怎么查
  • 清城区做模板网站建设西安百度竞价开户
  • 手机wap网站 源码企业官网
  • 做暧暧网站在线观看seo专员是干嘛的
  • 天津专业做网站的公司有哪些成人技能培训机构
  • 深圳坪山网站制作公司seo权重优化软件
  • 一般做网站带宽选择多大的产品推广渠道有哪些方式
  • 黑龙江专业网站建设百度竞价托管代运营
  • 简述电子政务系统网站建设的基本过程seo关键词优化排名推广
  • ubuntu做网站开发网站建设及推广优化
  • 江西个人网站备案做论坛深圳信息公司做关键词
  • 陵水网站建设报价排名推广网站
  • 武冈企业建站别人恶意点击我们竞价网站
  • 劫持别人的网站做违法的事会怎么样推广软件下载
  • 移动网站开发教程下载软件开发公司排行榜
  • 心理 网站策划网络营销专员的就业前景
  • 做视频解析网站网站快速排名的方法
  • 做平面设计哪个网站下载素材好西安疫情最新通知
  • 沈阳网站搭建大型网站建设方案
  • 东莞网站快速排名优化网络推广是做什么工作
  • 界面 网站深圳最新消息今天
  • 网站根目录多文件seo优化评论
  • 做网站月入过万千锋教育和黑马哪个好
  • 外贸网站的推广技巧有哪些百度指数平台
  • 中天建设集团门户网站百度页面推广