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

leetcode3250. 单调数组对的数目 I,仅需1s

题目:
https://leetcode.cn/problems/find-the-count-of-monotonic-pairs-i/description/
不为别的,只是记录下这个超过100%,而且比原先最快的快了一个量级
在这里插入图片描述在这里插入图片描述

不知道咋分析,反正得出结论就是,变大不变,变小跟着变,最后一个数,如果是负数,直接为0,如果为正数,就是C(len+n取n)
两个解题时间如图:
1、使用加法计算C

class Solution {public int countOfPairs(int[] nums) {int jj = 0;int len = nums.length;for (int i = 1; i < len; i++) {if (nums[i] - jj >= nums[i - 1]) {jj = nums[i] - nums[i - 1];nums[i] = nums[i - 1];} else {nums[i] -= jj;if (nums[i] < 0) {return 0;}}}return getAns(nums.length, nums[len - 1]);}//使用加法计算private int getAns(int length, int num) {long[] anss = new long[num + 1];for (int i = 0; i < anss.length; i++) {anss[i] = 1;}for (int i = 0; i < length; i++) {for (int j = 1; j <= num; j++) {anss[j] += anss[j - 1];anss[j]%=1_000_000_007;}}return (int) anss[num];}
}

2、使用计算式计算C,因为存在1000_000_007,所以先约分

class Solution {public int countOfPairs(int[] nums) {int jj = 0;int len = nums.length;for (int i = 1; i < len; i++) {if (nums[i] - jj >= nums[i - 1]) {jj = nums[i] - nums[i - 1];nums[i] = nums[i - 1];} else {nums[i] -= jj;if (nums[i] < 0) {return 0;}}}return getAns(nums.length, nums[len - 1]);}private int getAns(int length, int num) {if (length <= num) {return getAA(length, length + num);} else {return getAA(num, length + num);}}//以下计算C(length取n)private int getAA(int n, int length) {if (n == 0) {return 1;}int[] fenzi = new int[n];for (int i = 0; i < n; i++) {fenzi[i] = length - i;}for (int i = 1; i <= n; i++) {int temp = i;int j = 0;while (temp > 1) {int yue = getYue(temp, fenzi[j]);temp /= yue;fenzi[j] /= yue;j++;}}long ans = 1;for (int i : fenzi) {ans *= i;ans %= 1000_000_007;}return (int) ans;}private int getYue(int t1, int t2) {if (t1 == t2) {return t1;}if (t1 > t2) {return getYYY(t1, t2);} else {return getYYY(t2, t1);}}private int getYYY(int t1, int t2) {int t3 = t1 % t2;if (t3 == 0) {return t2;}return getYYY(t2, t3);}
}
http://www.lryc.cn/news/494395.html

相关文章:

  • 安全基线检查
  • C#读取本地图像的方法总结
  • 力扣81:搜索旋转排序数组II
  • 信息系统项目管理-论文写作方法之背景二
  • 使用ffmpeg命令实现视频文件间隔提取帧图片
  • 我们项目要升级到flutter架构的几点原因
  • 【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)
  • ElasticSearch为什么不能在query阶段直接返回_id,从而避免fetch?
  • 网安瞭望台第5期 :7zip出现严重漏洞、识别网络钓鱼诈骗的方法分享
  • 获 2023 年度浙江省科学技术进步奖一等奖 | 网易数智日报
  • SQL基础入门 —— SQL概述
  • 【附录】Rust国内镜像设置
  • 量化交易系统开发-实时行情自动化交易-8.2.发明者FMZ平台
  • MATLAB —— 机械臂工作空间分析
  • 向日葵连接xrdp虚拟桌面
  • AI智算-正式上架GPU资源监控概览 Grafana Dashboard
  • goframe框架bug-记录
  • 对偶分解算法详解及其Python实现
  • C# WinForm怎么使用COM组件
  • 【Python】深入理解Python的字符串处理与正则表达式:文本处理的核心技能
  • 【开源项目】2024最新PHP在线客服系统源码/带预知消息/带搭建教程
  • OpenCV从入门到精通实战(五)——dnn加载深度学习模型
  • 【Leetcode Top 100】142. 环形链表 II
  • 嵌入式Qt使用ffmpeg视频开发记录
  • iOS 17.4 Not Installed
  • CTF之WEB(sqlmap tamper 参数)
  • 多点DMALL启动招股:将在港交所上市,聚焦数字零售服务
  • 【c++篇】:解读Set和Map的封装原理--编程中的数据结构优化秘籍
  • ollama部署bge-m3,并实现与dify平台对接
  • 在并发情况下,Elasticsearch如果保证读写一致?