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

外贸网站建设哪里好建设大学网站费用

外贸网站建设哪里好,建设大学网站费用,百度电商广告代运营,企业网站开发用什么软件白银挑战-贪心高频问题 1. 区间问题 所有的区间问题#xff0c;参考下面这张图 1.1 判断区间是否重叠 LeetCode252 https://leetcode.cn/problems/meeting-rooms/ 思路分析 因为一个人在同一时刻只能参加一个会议#xff0c;因此题目的本质是判断是否存在重叠区间 将区…白银挑战-贪心高频问题 1. 区间问题 所有的区间问题参考下面这张图 1.1 判断区间是否重叠 LeetCode252 https://leetcode.cn/problems/meeting-rooms/ 思路分析 因为一个人在同一时刻只能参加一个会议因此题目的本质是判断是否存在重叠区间 将区间按照会议开始时间进行排序然后遍历一遍判断后面的会议开始的时候是否前面的还没有结束如果出现重叠返回false 代码实现 class Solution:def canAttendMeetings(self, intervals: List[List[int]]) - bool:intervals.sort(keylambda x: x[0])for i in range(1, len(intervals)):if intervals[i][0] intervals[i - 1][1]:return Falsereturn Trueclass Solution:def canAttendMeetings(self, intervals: List[List[int]]) - bool:intervals.sort(keylambda x: x[0])return all(intervals[i][0] intervals[i - 1][1] for i in range(1, len(intervals)))1.2 合并区间 LeetCode 56 https://leetcode.cn/problems/merge-intervals/ 思路分析 首先对区间按照起始端点进行升序排序然后逐个判断当前区间是否与前一个区间重叠 如果不重叠直接加入结果集 如果重叠将当前区间与前一个区间进行合并 区间合并 区间1区间2 合并 [ 区间1起始时间max(区间1结束时间区间2结束时间) ] 代码实现 class Solution:def merge(self, intervals: List[List[int]]) - List[List[int]]:intervals.sort(keylambda x: x[0])merged []for interval in intervals:# 合并列表为空if not merged:merged.append(interval)# 当前区间与上一区间不重叠elif interval[0] merged[-1][1]:merged.append(interval)# 当前区间与上一区间重叠需要合并else:# 区间合并操作merged[-1][1] max(merged[-1][1], interval[1])return merged1.3 插入区间 LeetCode57 https://leetcode.cn/problems/insert-interval/ 思路分析 区间已经按照起始端点升序排序我们直接遍历区间列表寻找新区间的插入位置即可 将新区间左边且相离的区间加入结果集接着判断当前区间是否与新区间重叠 重叠进行合并直到遍历到当前区间在新区间右边且相离加入合并后区间 不重叠直接加入新区间将新区间右边且相离的区间加入结果集 代码实现 class Solution:def insert(self, intervals: List[List[int]], newInterval: List[int]) - List[List[int]]:inserted []index 0n len(intervals)# 将新区间左边且相离的区间加入结果集while index n and intervals[index][1] newInterval[0]:inserted.append(intervals[index])index 1# 接着判断当前区间是否与新区间重叠# 重叠进行合并直到遍历到当前区间在新区间右边且相离加入合并后区间# 不重叠直接加入新区间while index n and intervals[index][0] newInterval[1]:newInterval[0] min(newInterval[0], intervals[index][0])newInterval[1] max(newInterval[1], intervals[index][1])index 1inserted.append(newInterval)# 将新区间右边且相离的区间加入结果集while index n:inserted.append(intervals[index])index 1return insertedclass Solution:def insert(self, intervals: List[List[int]], newInterval: List[int]) - List[List[int]]:inserted []index 0n len(intervals)while index n:if intervals[index][1] newInterval[0]:inserted.append(intervals[index])index 1elif intervals[index][0] newInterval[1]:newInterval[0] min(newInterval[0], intervals[index][0])newInterval[1] max(newInterval[1], intervals[index][1])index 1else:breakinserted.append(newInterval)inserted.extend(intervals[index:])return inserted2. 字符串分割 LeetCode763 https://leetcode.cn/problems/partition-labels/ 思路分析 需要把同一个字母圈在同一个区间里 该遍历过程相当于要找每一个字母的边界如果找到之前遍历过的所有字母的最远边界说明这个边界就是分割点了。此时前面出现过所有字母最远也就到这个边界了。 具体做法 统计每一个字符最后出现的位置从头遍历字符并更新字符最远出现下标如果找到字符最远出现位置下标和当前下标相等则找到了分割点 代码实现 class Solution:def partitionLabels(self, s: str) - List[int]:ans []# 第一轮遍历统计每一个字符最后出现的位置char_dict {}for i in range(len(s)):char_dict[s[i]] i# 第二轮遍历begin_index -1char_far_index 0for i in range(len(s)):char_far_index max(char_far_index, char_dict[s[i]])if char_far_index i:ans.append(i - begin_index)begin_index ireturn ansclass Solution:def partitionLabels(self, s: str) - List[int]:last [0] * 26for i, char in enumerate(s):last[ord(char) - ord(a)] ipartition list()start, end 0, 0for i, char in enumerate(s):end max(end, last[ord(char) - ord(a)])if i end:partition.append(end - start 1)start end 1return partition3. 加油站问题 LeetCode134 https://leetcode.cn/problems/gas-station/ 思路分析 很容易想到暴力解法从第一站开始尝试。缺点就是需要大量的重复计算 优化 总油量 - 总消耗 ≥ 0可以跑完一圈具体到每一段就是各个加油站的剩油量 rest[i] 相加一定是大于等于0的 每个加油站剩油量 rest[i] gas[i] - cost[i]i从0开始累加 rest[i] 得到当前油量 curSum一旦curSum小于0说明[0, i]区间都不能作为起始位置起始位置必须从i1开始重新算只有这样才能保证有可能完成 复杂度降低从O(n^2)降低到O(n) 代码实现 class Solution:def canCompleteCircuit(self, gas: List[int], cost: List[int]) - int:total_sum 0cur_sum 0start 0for i in range(len(gas)):cur_sum gas[i] - cost[i]total_sum gas[i] - cost[i]# 当前累加rest[i]和 cur_sum小于0if cur_sum 0:# 更新起始位置为 i1start i1# cur_sum从 0 开始cur_sum 0return -1 if total_sum 0 else start
http://www.hkea.cn/news/14545651/

相关文章:

  • 医院网站建设的资料一般纳税人5%征收率
  • 免费创建单页网站网站精简布局
  • 模板网站的优缺点广东seo点击排名软件哪家好
  • 建立一个网站需要什么apache设置网站网址
  • 建设了网站要维护吗南京网站推广¥做下拉去118cr
  • 网站后台怎么添加模板网站开发公司专业
  • 学校网站建设协议模板做网站体会心得
  • 建设部网站举报网站建设的发展前景
  • 软件项目外包平台衡水网站建设优化推广
  • 网站手机端怎么做改版网站会影响百度
  • 给企业做网站多少钱网站建设gxjzdrj
  • 做学校和企业对接的网站网站开发培训光山
  • 完成网站建设成本泉州建站模板厂家
  • 网站源码 酷wordpress改后台地址
  • 荆州网站建设营销网站制作教程
  • 搜索引擎有哪些网站男人不知本网站 枉做
  • 免费搭建平台网站网页设计实训总结1500字通用
  • 图片无版权网站滨州做网站建设的公司
  • 做网站的系统做网站备案需要多长时间
  • 工程建设网站导航图网站推广如何做的
  • 精品下载站网站开发需要哪些人才
  • 太原建站公司有哪些wordpress表格美化
  • 南宁企业网站建设制作外卖网站设计
  • 江苏省城乡建设部网站首页微信上做网站
  • 界面设计好看的网站php与wordpress
  • dedecms手机网站模板安装教程网站接入银联支付怎么做
  • html 类似淘宝购物网站上加载时获取属性并可多选过滤 代码网页网站设计
  • 社交型网站首页面设计分析创建一个网站的创业计划书
  • 设计公司网站域名有什么做数学题的网站
  • 网页设计视频网站做网站开创和中企动力哪家强