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

贪心算法习题其三【力扣】【算法学习day.20】

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.划分字母区间

题目链接:763. 划分字母区间 - 力扣(LeetCode)

题面:

代码:

class Solution {public List<Integer> partitionLabels(String s) {List<Integer> list = new ArrayList<>();char[] srr = s.toCharArray();int n = s.length();int[] addr = new int[30];for(int i = 0;i<n;i++){addr[srr[i]-'a'] = i;}int count = 0;int l = 0;int flag = 0;int flagl = 0;while(l<n){if(flag == 0){count++;flagl = addr[srr[l]-'a'];if(flagl==l){list.add(1);count=0;}flag=1;}else{flagl = Math.max(addr[srr[l]-'a'],flagl);count++;if(l==flagl){list.add(count);count = 0;flag = 0;}}l++;}return list;}
}

2.合并区间

题目链接:56. 合并区间 - 力扣(LeetCode)

题面:

代码:

class Solution {public int[][] merge(int[][] intervals) {int n = intervals.length;int[][] ans = new int[n][2];Arrays.sort(intervals, new Comparator<int[]>() {@Overridepublic int compare(int[] o1, int[] o2) {return o1[0] - o2[0];}});int xl = 0;int xr = 0;int flag = 0;int l = 0;int count = 0;while (l < n) {if (flag == 0) {if (l == n - 1) {ans[count][0] =intervals[l][0];ans[count++][1] =intervals[l][1];l++;break;}xl = intervals[l][0];xr = intervals[l][1];flag=1;}else{if((intervals[l][0]<=xr&&xr<=intervals[l][1])||(xr>=intervals[l][1]&&xl<=intervals[l][0])){xr =Math.max(intervals[l][1],xr);xl =Math.min(intervals[l][0],xl);if(l==n-1){ans[count][0] =xl;ans[count++][1] = xr;break;}}else{ans[count][0] =xl;ans[count++][1] = xr;l--;flag = 0;}}l++;}int[][] ans2 = new int[count][2];for(int i = 0;i<count;i++){ans2[i]=ans[i];}return ans2;}
}

后言

上面是贪心算法的部分习题,下一篇会讲解贪心算法的其他相关力扣习题,希望有所帮助,一同进步,共勉!   

http://www.lryc.cn/news/479205.html

相关文章:

  • 速盾:高防cdn针对网站的好处有哪些?
  • 【Java SE语法】抽象类(abstract class)和接口(interface)有什么异同?
  • 京准同步:GPS北斗卫星授时服务器发展趋势介绍
  • 鸿蒙多线程开发——并发模型对比(Actor与内存共享)
  • 【计算机网络】章节 知识点总结
  • 开箱即用!265种windows渗透工具合集--灵兔宝盒
  • 怎么在哔哩哔哩保存完整视频
  • CPU算法分析LiteAIServer视频智能分析平台视频智能分析:抖动、过亮与过暗检测技术
  • fastGPT调用stable diffusion生成图片,本地模型使用ollama
  • 【jmeter】jmeter的线程组功能的详细介绍
  • 高边坡安全监测系统的工作原理和应用领域
  • Java:多态的调用
  • A day a tweet(seventeen)——Visualize Convolution Neural Network!
  • 卡达掐发展史
  • UI界面设计入门:打造卓越用户体验
  • 【Linux:tcp三次握手和四次挥手】
  • 大数据Informatica面试题及参考答案
  • Gradient Boosting Regressor(GBDT)--- 论文实战
  • Python教程:python枚举类定义和使用
  • Java学习Day60:微服务总结!(有经处无火,无火处无经)
  • MySQL日期类型选择建议
  • 70B的模型做微调,使用A10*8的卡能够使用
  • 将vscode的终端改为cygwin terminal
  • 《ASP.Net Core技术内幕与项目实战》读书笔记_1
  • 【青牛科技】应用方案|D2587A高压大电流DC-DC
  • 【测试】【Debug】pytest运行后print没有输出
  • linux strace 查看程序异常问题总结
  • 8086汇编常见寄存器与指令
  • Group By、Having用法总结(常见踩雷点总结—SQL)
  • Redis持久化机制——针对实习面试