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

靓号网建站婚介网站模板

靓号网建站,婚介网站模板,获取网站访客qq号码,网络促销策略有哪五种JAVA代码编写 435. 无重叠区间 给定一个区间的集合 intervals #xff0c;其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后#x…JAVA代码编写 435. 无重叠区间 给定一个区间的集合 intervals 其中 intervals[i] [starti, endi] 。返回 需要移除区间的最小数量使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后剩下的区间没有重叠。示例 2: 输入: intervals [ [1,2], [1,2], [1,2] ] 输出: 2 解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。示例 3: 输入: intervals [ [1,2], [2,3] ] 输出: 0 解释: 你不需要移除任何区间因为它们已经是无重叠的了。提示: 1 intervals.length 105intervals[i].length 2-5 * 104 starti endi 5 * 104 教程https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html 方法一贪心 思路和452. 用最少数量的箭引爆气球这一题很像就是返回值不一样。 看看这个例子intervals [[1,2],[2,3],[3,4],[1,3]] 步骤 排序后是intervals [[1,2],[1,3],[2,3],[3,4]]默认count是1默认整个都是相交的遍历intervals 如果上一个区间的右边界 大于 下一个区间的左边界,也就是上一个区间和下一个区间有交集那就将这个两个中较小的值赋给当前区间的右边界否则count。最后返回intervals .length - count 复杂度分析 时间复杂度O(nlogn)空间复杂度O(n) import java.util.Arrays;class Solution {public int eraseOverlapIntervals(int[][] intervals) {// 排序方法1// Arrays.sort(intervals, (a, b) - Integer.compare(a[0], b[0]));// 排序方法2Arrays.sort(intervals,(a,b)-a[0]-b[0]); // (a, b) 是传递给比较函数的两个参数即数组中的两个元素。a[0] - b[0] 实际上是计算两个数组元素第一列值的差如果结果为负数则 a 应该排在 b 的前面如果结果为正数则 a 应该排在 b 的后面。int count 1;for(int i 1;i intervals.length;i){if(intervals[i][0] intervals[i-1][1]){intervals[i][1] Math.min(intervals[i - 1][1], intervals[i][1]);continue;}else{count;}}return intervals.length - count;}public static void main(String[] args) {int[][] intervals {{1,2},{2,3},{3,4},{1,3}};Solution solution new Solution();solution.eraseOverlapIntervals(intervals);} }763.划分字母区间 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段同一字母最多出现在一个片段中。 注意划分结果需要满足将所有划分结果按顺序连接得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1 输入s ababcbacadefegdehijhklij 输出[9,7,8] 解释 划分结果为 ababcbaca、defegde、hijhklij 。 每个字母最多出现在一个片段中。 像 ababcbacadefegde, hijhklij 这样的划分是错误的因为划分的片段数较少。 示例 2 输入s eccbbbbdec 输出[10]提示 1 s.length 500s 仅由小写英文字母组成 教程 https://programmercarl.com/0763.%E5%88%92%E5%88%86%E5%AD%97%E6%AF%8D%E5%8C%BA%E9%97%B4.html 方法一贪心 思路题目有点难懂 字符串划分为尽可能多的片段也就是划分后的数组个数尽可能多。同一字母最多出现在一个片段中也就是相同字母要放在一起。也可以理解为划分后的没有交集。 以s ababcbacadefegdehijhklij为例 步骤 通过字母-‘a’获取索引存入数组edge中。此时edge [8, 5, 7, 14, 15, 11, 13, 19, 22, 23, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]。具体来说edge[0]表示字母a最后一次出现的索引。0表示没有出现这个字母。遍历chars数组每次要划分的索引是max(idx,edge[char[i]-‘a’])知道索引idx就是找到了切割的点这个条件还挺难找的。通过当前的索引-last获取切分的长度 复杂度分析 时间复杂度O(n)空间复杂度O(n) import java.util.LinkedList; import java.util.List;class Solution {public ListInteger partitionLabels(String S) {ListInteger list new LinkedList();int[] edge new int[26]; //char[] chars S.toCharArray(); // 转为数组for (int i 0; i chars.length; i) {edge[chars[i] - a] i; // 存放字母a-z在数组chars中最后出现的位置也就是最后出现的索引}int idx 0;int last -1;for (int i 0; i chars.length; i) {idx Math.max(idx,edge[chars[i] - a]);if (i idx) {list.add(i - last);last i;}}return list;}public static void main(String[] args) {Solution solution new Solution();solution.partitionLabels(ababcbacadefegdehijhklij);} }56. 合并区间 以数组 intervals 表示若干个区间的集合其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间并返回 一个不重叠的区间数组该数组需恰好覆盖输入中的所有区间 。 示例 1 输入intervals [[1,3],[2,6],[8,10],[15,18]] 输出[[1,6],[8,10],[15,18]] 解释区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2 输入intervals [[1,4],[4,5]] 输出[[1,5]] 解释区间 [1,4] 和 [4,5] 可被视为重叠区间。提示 1 intervals.length 104intervals[i].length 20 starti endi 104 教程https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html 方法一贪心 思路 以intervals [[1,3],[2,6],[8,10],[15,18]]为例子 步骤 排序后:intervals [[1,3],[2,6],[8,10],[15,18]]遍历intervals 如果左边界大于最大右边界,就添加到结果中此时没有交集直接加入结果更新左边界和右边界否则合并和的区间就是[上一个区间的左边界下一个区间的右边界]更新右边界遍历完还要添加到结果 细节方面不是很懂更新边界值那里。 复杂度分析 时间复杂度O(nlogn)空间复杂度O(logn) import java.util.Arrays; import java.util.LinkedList; import java.util.List;class Solution {public int[][] merge(int[][] intervals) {Listint[] res new LinkedList();//按照左边界排序Arrays.sort(intervals, (x, y) - Integer.compare(x[0], y[0]));//initial start 是最小左边界int start intervals[0][0];int rightmostRightBound intervals[0][1];for (int i 1; i intervals.length; i) {//如果左边界大于最大右边界if (intervals[i][0] rightmostRightBound) {//加入区间 并且更新startres.add(new int[]{start, rightmostRightBound});start intervals[i][0];rightmostRightBound intervals[i][1];} else {//更新最大右边界rightmostRightBound Math.max(rightmostRightBound, intervals[i][1]);}}res.add(new int[]{start, rightmostRightBound});return res.toArray(new int[res.size()][]);}public static void main(String[] args) {Solution solution new Solution();solution.merge(new int[][] {{1,3},{2,6},{8,10},{15,18}});} }
http://www.w-s-a.com/news/91368/

相关文章:

  • 东莞营销型网站建设全自动建站系统
  • 网络在线培训网站建设方案虚拟主机配置WordPress
  • 建设工程信息查询哪个网站好台州做优化
  • wordpress页面回收站位置台州做网站
  • 邢台市行政区划图seo咨询师招聘
  • 外贸网站建设案例网站建设优化开发公司排名
  • 恩施网站优化郑州有没有厉害的seo
  • 电子商务网站建设与管理期末考试题铜山区建设局网站
  • 怎么做非法彩票网站大兴安岭网站建设公司
  • 网站备案授权书模板海外如何淘宝网站建设
  • 网站开发提供源代码dedecms做网站教程
  • 怎么做国际网站首页erp系统一套大概多少钱
  • 做代理网站用什么软件建设网站的企业多少钱
  • 微企免费做网站360收录提交
  • 网站导航页怎么做wordpress数据库批量替换
  • wordpress站点更换域名自己做wordpress 模版
  • 怎么做虚拟的网站东莞常平邮编是多少
  • 电子商务网站和普通网站的区别正规网站建设多少费用
  • 郴州免费招聘网站前端好还是后端好
  • 织梦网站怎样做子域名20个中国风网站设计欣赏
  • wordpress网站搬简约创意logo图片大全
  • 叙述网站制作的流程石家庄58同城最新招聘信息
  • 南昌微信网站建设东莞网站优化软件
  • 爱站数据官网纯静态网站挂马
  • 网站建设公司未来方向3d设计网站
  • 建设部网站 干部学院 一级注册建筑师培训 2014年做网站开发的提成多少钱
  • 网上请人做软件的网站铝合金型材外发加工网
  • 手机网站建设万网山东省作风建设网站
  • 网站策划专员招聘50万县城做地方网站
  • 网站开发公司+重庆wordpress自定义搜索界面