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

济宁市建设银行网站wordpress建数据库

济宁市建设银行网站,wordpress建数据库,网站服务器的维护方法,网站公司可以做英文网吗灌溉花园的最少水龙头数目 题目描述 在 x 轴上有一个一维的花园。花园长度为 n,从点 0 开始,到点 n 结束。 花园里总共有 n 1 个水龙头,分别位于 [0, 1, …, n] 。 给你一个整数 n 和一个长度为 n 1 的整数数组 ranges ,其中…

灌溉花园的最少水龙头数目

题目描述

在 x 轴上有一个一维的花园。花园长度为 n,从点 0 开始,到点 n 结束。

花园里总共有 n + 1 个水龙头,分别位于 [0, 1, …, n] 。

给你一个整数 n 和一个长度为 n + 1 的整数数组 ranges ,其中 ranges[i] (下标从 0 开始)表示:如果打开点 i 处的水龙头,可以灌溉的区域为 [i - ranges[i], i + ranges[i]] 。

请你返回可以灌溉整个花园的 最少水龙头数目 。如果花园始终存在无法灌溉到的地方,请你返回 -1 。

样例

样例输入

n = 5, ranges = [3,4,1,1,0,0]
n = 3, ranges = [0,0,0,0]

样例输出

1
解释:
点 0 处的水龙头可以灌溉区间 [-3,3]
点 1 处的水龙头可以灌溉区间 [-3,5]
点 2 处的水龙头可以灌溉区间 [1,3]
点 3 处的水龙头可以灌溉区间 [2,4]
点 4 处的水龙头可以灌溉区间 [4,4]
点 5 处的水龙头可以灌溉区间 [5,5]
只需要打开点 1 处的水龙头即可灌溉整个花园 [0,5] 。

-1
解释:即使打开所有水龙头,你也无法灌溉整个花园。

提示

  • 1<=n<=1041 <= n <= 10^41<=n<=104
  • ranges.length==n+1ranges.length == n + 1ranges.length==n+1
  • 0<=ranges[i]<=100 <= ranges[i] <= 100<=ranges[i]<=10

思路

大的总问题可以化为相同类型的子问题,可以使用动态规划。且不仅仅可以使用动态规划,还可以使用贪心思想,因为在相同类型的子问题中,可以取其最优解。

代码实现

动态规划

class Solution {public int minTaps(int n, int[] ranges) {int[][] arr = new int[n+1][2];for(int i = 0; i <= n; i++){arr[i][0] =  Math.max(0, i - ranges[i]);arr[i][1] = Math.min(n, i + ranges[i]);}Arrays.sort(arr, (a, b) -> a[0] - b[0]);int[] dp = new int[n+1];Arrays.fill(dp, Integer.MAX_VALUE);dp[0] = 0;for(int[] a : arr){if(dp[a[0]] == Integer.MAX_VALUE) return -1;for(int i = a[0]; i <= a[1]; i++) dp[i] = Math.min(dp[i], dp[a[0]] + 1);}return dp[n];}
}

贪心思想

class Solution {public int minTaps(int n, int[] ranges) {int[] right = new int[n+1];for(int i = 0; i <= n; i++) right[i] = i;for(int i = 0; i < ranges.length; i++){int start = Math.max(0, i - ranges[i]);int end = Math.min(n, i + ranges[i]);right[start] = Math.max(right[start], end);}int last = 0, res = 0, pre = 0;for(int i = 0; i < n; i++){last = Math.max(last, right[i]);if(i == last) return -1;if(i == pre){res++;pre = last;}}return res;}
}
http://www.yayakq.cn/news/686551/

相关文章:

  • 利州区住房和城乡建设部网站wordpress打包
  • 网站改版建议策划书关于网络编辑作业做网站栏目新闻的ppt
  • 提升网站的访问速度行业型网站开发
  • 如何在linux服务器上架设网站图片库网站建设报价
  • 如何做问卷调查网站wordpress 自动替换
  • 南宁网站制作wordpress导航横着
  • 站长统计app下载培训学校网站模板
  • 网站 linux 服务器网片加工机器
  • 做网站映射tcp策划书网页设计方案
  • 网站建设企业 熊账号个人做外贸怎么做推广
  • 什么网站详情页做的好网站建设学生作业成品
  • 网站开发的类型郑州网站建设修改
  • 青岛网站建设企业建站网站代付系统怎么做
  • 中国网站建设市场分析无锡seo报价
  • 做yy头像的网站wordpress直接英文版
  • 扁平风格网站模板咸鱼之王小程序
  • 大连模板网站制作哪家好女生学软件工程很难吗
  • 模具机械设备东莞网站建设定制网站设计
  • 网站怎么做悬浮图片自己的网站如何优化
  • 西安专业网站制作网站关键词多少个好
  • 不同网站相似的页面百度不收录吗百度推广做网站
  • 交互式网站定义wordpress订阅者投稿
  • 黄山网站建设有哪些商标在线设计logo图案
  • 奇胜网络 邯郸网站建设做网站业务员应该了解什么
  • 灵山网站建设无忧建站
  • 建湖做网站多少钱什么是sem和seo
  • 网站广告模板代码做网站云服务期
  • 北京做环评备案的网站wordpress小图标大全
  • 网站设计师发展前景网站建设方面的书籍推荐
  • 网站推广与搜索引擎优化seo中文意思