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

【二刷hot100】day 4

终于有时间刷刷力扣,求实习中。。。。

目录

1.最大子数组和

2.合并区间

3.轮转数组 

4.除自身以外数组的乘积 

1.最大子数组和

class Solution {public int maxSubArray(int[] nums) {//就是说可以转换为计算左边的最大值,加上中间的值,加上右边的最大值;//这样的话,就可以使用递归了;int n=nums.length;if(n==0){return 0;}return maxSub(nums,0,n-1);}//计算常规连续的数组最大和public int maxSub(int [] nums,int left,int right){if(left==right){return nums[left];}int mid=(left+right)/2;return Math.max(maxSub(nums,left,mid),Math.max(maxSub(nums,mid+1,right),maxCross(nums,left,mid,right)));}//计算跨越mid元素的最大和public int maxCross(int [] nums,int left,int mid,int right){//s1为临时求和int s1=0;//左边的最大值int max_left=0;int start_left=mid-1;while(start_left>=left){s1+=nums[start_left];max_left=Math.max(s1,max_left);start_left--;}int s2=0;int max_right=0;int start_right=mid+1;while(start_right<=right){s2+=nums[start_right];max_right=Math.max(s2,max_right);start_right++;}//最终结果return max_left+nums[mid]+max_right;//不理解为什么max_left设置为0}
}

2.合并区间

class Solution {public int[][] merge(int[][] intervals) {//按照第一个元素进行排序Arrays.sort(intervals,(a,b)->a[0]-b[0]);List<int[]> ret=new ArrayList<>();for(int [] p:intervals){//当前区间左端点<=最后一个区间右端点,可以合并if(!ret.isEmpty()&&p[0]<=ret.get(ret.size()-1)[1]){ret.get(ret.size()-1)[1]=Math.max(ret.get(ret.size()-1)[1],p[1]);}else{//不能合并,添加区间ret.add(p);}}return ret.toArray(new int[ret.size()][]);}
}

3.轮转数组 

class Solution {public void rotate(int[] nums, int k) {int n=nums.length;k%=n;reverse(nums,0,n-1);reverse(nums,0,k-1);reverse(nums,k,n-1);}private void reverse(int[] nums,int i,int j){while(i<j){int tmp=nums[i];nums[i++]=nums[j];nums[j--]=tmp;}}
}

 

4.除自身以外数组的乘积 

class Solution {public int[] productExceptSelf(int[] nums) {//pre表示前缀积;suf表示后缀积;ret=两者之积即可;int n=nums.length;int[] pre=new int[n];pre[0]=1;for(int i=1;i<n;i++){pre[i]=nums[i-1]*pre[i-1];}int[] suf=new int[n];suf[n-1]=1;for(int i=n-2;i>=0;i--){suf[i]=nums[i+1]*suf[i+1];}int[] ret = new int[n];for(int i=0;i<n;i++){ret[i]=pre[i]*suf[i];}return ret;}
}

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

相关文章:

  • 10.22学习
  • 【不要离开你的舒适圈】:猛兽才希望你落单,亲人总让你回家,4个维度全面构建舒适圈矩阵
  • OpenIPC开源FPV之Channel配置
  • UG NX12.0建模入门笔记:1.0 UG NX12.0安装教程
  • 【C++】踏上C++学习之旅(三):“我“ 与 “引用“ 的浪漫邂逅
  • 中间件之Seata
  • MySQL 异常: “Host ‘xxx‘ is not allowed to connect to this MySQL server“
  • c语言中字符串函数strlen,strcmp,strcpy,srtcat,strncpy,strncat,strncmp
  • 携程线下一面,面试内容:
  • DeepL翻译:全世界最准确的翻译
  • 15分钟学Go 实战项目一:命令行工具
  • lesson02 作业
  • 港大和字节提出长视频生成模型Loong,可生成具有一致外观、大运动动态和自然场景过渡的分钟级长视频。
  • RabbitMQ进阶_可靠性
  • JavaScript字符串的常用方法有哪些?
  • jmeter发送post请求
  • 图文深入理解Oracle Total Recall
  • 腾讯云控制台URL刷新URL预热 使用接口刷新
  • 构建后端为etcd的CoreDNS的容器集群(二)、下载最新的etcd容器镜像
  • libaom-all-intra参数说明
  • 应用假死?
  • SAP MM+FI - 物料管理模块与财务会计模块的集成配置
  • 初阶数据结构【3】--单链表(比顺序表还好的一种数据结构!!!)
  • mysql迁移到达梦的修改点
  • Go小技巧易错点100例(十八)
  • 【python】极简教程8-字符串
  • UEFI EDK2框架学习 (四)——UEFI图形化
  • 【C++】— 一篇文章让你认识STL
  • mysql--索引
  • 【linux】线程 (三)