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

谁家的网站做的比较好百度网站登录

谁家的网站做的比较好,百度网站登录,蓬莱做网站案例,为什么要做企业官网135. 分发糖果 问题描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩子分发糖果&#x…

135. 分发糖果

问题描述

n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。

你需要按照以下要求,给这些孩子分发糖果:

  • 每个孩子至少分配到 1 个糖果。
  • 相邻两个孩子评分更高的孩子会获得更多的糖果。

请你给每个孩子分发糖果,计算并返回需要准备的 最少糖果数目

示例 1:

输入:ratings = [1,0,2]
输出:5
解释:你可以分别给第一个、第二个、第三个孩子分发 2、1、2 颗糖果。

示例 2:

输入:ratings = [1,2,2]
输出:4
解释:你可以分别给第一个、第二个、第三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这满足题面中的两个条件。

提示:

  • n == ratings.length
  • 1 <= n <= 2 * 104
  • 0 <= ratings[i] <= 2 * 104

解题思路与代码实现

class Solution {public int candy(int[] ratings) {// 糖果数组int[] candies = new int[ratings.length];Arrays.fill(candies, 1); // 每个孩子最后分发一颗糖果// 顺序构建糖果数组for (int i = 1; i < ratings.length; i++) {if (ratings[i] > ratings[i - 1]) {// 贪心策略:求最少,故只多发1棵糖果candies[i] = candies[i - 1] + 1;}}// 逆序构建糖果数组for (int i = ratings.length - 2; i >= 0; i--) {if (ratings[i] > ratings[i + 1]) {// 判断是否符合题目要求candies[i] = Math.max(candies[i], candies[i + 1] + 1);}}// 糖果数组求和并返回return Arrays.stream(candies).sum();}
}

踩坑点

如何处理区间问题

406. 根据身高重建队列

问题描述

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好ki 个身高大于或等于 hi 的人。

请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。

示例 1:

输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]
解释:
编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。
编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。
编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。
编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。

示例 2:

输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]
输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]

提示:

  • n == ratings.length
  • 1 <= n <= 2 * 104
  • 0 <= ratings[i] <= 2 * 104

解题思路与代码实现

class Solution {public int[][] reconstructQueue(int[][] people) {// people数组按照h降序k升序规则排序Arrays.sort(people, (p1, p2) -> p1[0] != p2[0] ? p2[0] - p1[0] : p1[1] - p2[1]);LinkedList<int[]> resList = new LinkedList<>();for (int i = 0; i < people.length; i++) {resList.add(people[i][1], people[i]);}// 根据身高排名k更新people数组for (int i = 0; i < people.length; i++) {people[i] = resList.get(i);}return people;}
}

452. 用最少数量的箭引爆气球

问题描述

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstartxend之间的气球。你不知道气球的确切 y 坐标。

一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 x``startx``end, 且满足 xstart ≤ x ≤ x``end,则该气球会被 引爆 。可以射出的弓箭的数量 没有限制 。 弓箭一旦被射出之后,可以无限地前进。

给你一个数组 points返回引爆所有气球所必须射出的 最小 弓箭数

示例 1:

输入:points = [[10,16],[2,8],[1,6],[7,12]]
输出:2
解释:气球可以用2支箭来爆破:
-在x = 6处射出箭,击破气球[2,8]和[1,6]。
-在x = 11处发射箭,击破气球[10,16]和[7,12]。

示例 2:

输入:points = [[1,2],[3,4],[5,6],[7,8]]
输出:4
解释:每个气球需要射出一支箭,总共需要4支箭。

示例 3:

输入:points = [[1,2],[2,3],[3,4],[4,5]]
输出:2
解释:气球可以用2支箭来爆破:
- 在x = 2处发射箭,击破气球[1,2]和[2,3]。
- 在x = 4处射出箭,击破气球[3,4]和[4,5]。

提示:

  • 1 <= points.length <= 105
  • points[i].length == 2
  • -231 <= xstart < xend <= 231 - 1

解题思路与代码实现

class Solution {public int findMinArrowShots(int[][] intervals) {// 按照开始区间升序排序Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));int res = 1; // 记录最终结果for (int i = 1; i < intervals.length; i++) {if (intervals[i][0] > intervals[i - 1][1]) { // 没有重叠区间res++; // 需要再来一只箭} else {// 更新最小结束区间intervals[i][1] = Math.min(intervals[i][1], intervals[i - 1][1]);}}return res;}
}

踩坑点

将问题转化为求非交叉区间数量的问题(非交叉区间,如[1,3],[2,4]算1个非交叉区间,如[1,2],[3,4]算2个非交叉区间)

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 <= 105
  • intervals[i].length == 2
  • -5 * 104 <= starti < endi <= 5 * 104

解题思路与代码实现

class Solution {public int eraseOverlapIntervals(int[][] intervals) {// 按照开始区间升序排序Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));// 贪心策略:移除区间的数量 = intervals数组元素个数 - 非交叉区间数量int res = 1; // 记录非交叉区间数量for (int i = 1; i < intervals.length; i++) {if (intervals[i][0] >= intervals[i - 1][1]) { // 没有交叉区间,设定[0,1]和[1,2]非交叉res++;} else {// 更新最小结束区间intervals[i][1] = Math.min(intervals[i][1], intervals[i - 1][1]);}}return intervals.length - res;}
}

踩坑点

问题转换:移除区间的数量 = intervals数组元素个数 - 非交叉区间数量

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 <= 104
  • intervals[i].length == 2
  • 0 <= starti <= endi <= 104

解题思路与代码实现

class Solution {public int[][] merge(int[][] intervals) {if (intervals.length == 1)return intervals;// 按照开始区间升序排序Arrays.sort(intervals, (o1, o2) -> Integer.compare(o1[0], o2[0]));LinkedList<int[]> resList = new LinkedList<>();resList.addLast(intervals[0]);for (int i = 1; i < intervals.length; i++) {int[] item = resList.getLast();// 贪心策略:碰到交叉区间就进行合并if (intervals[i][0] <= item[1]) { // 区间重叠resList.removeLast(); // 合并区间resList.addLast(new int[] { Math.min(item[0], intervals[i][0]), Math.max(item[1], intervals[i][1]) });} else {resList.addLast(intervals[i]);}}// 列表转数组return resList.toArray(new int[resList.size()][]);}
}

踩坑点

采用贪心策略,先将intervals按开始下标升序排序,然后遍历数组,相邻的两个区间能合并则进行合并;

763. 划分字母区间

问题描述

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。

注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s

返回一个表示每个字符串片段的长度的列表。

示例 1:

输入:s = "ababcbacadefegdehijhklij"
输出:[9,7,8]
解释:
划分结果为 "ababcbaca"、"defegde"、"hijhklij" 。
每个字母最多出现在一个片段中。
像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。 

示例 2:

输入:s = "eccbbbbdec"
输出:[10]

提示:

  • 1 <= s.length <= 500
  • s 仅由小写英文字母组成

解题思路与代码实现

class Solution {public List<Integer> partitionLabels(String s) {// 统计各个字符开始和结束位置,map的key为字符,value为长度为2的数组,包含出现开始下标和结束下标Map<Character, int[]> map = new HashMap<>();for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (!map.containsKey(c)) { // 首次出现map.put(c, new int[] { i, i });} else { // 再次出现// 更新结束下标map.put(c, new int[] { map.get(c)[0], i });}}// 转为数组int[][] intervals = map.values().toArray(new int[map.size()][]);// 数组按照开始下标升序排序Arrays.sort(intervals, Comparator.comparingInt(o -> o[0]));LinkedList<int[]> resList = new LinkedList<>(); // 记录最终结果区间resList.addLast(intervals[0]);for (int i = 1; i < intervals.length; i++) {int[] item = resList.getLast();// 贪心策略:碰到交叉区间就进行合并if (intervals[i][0] < item[1]) { // 重叠区间// 合并区间resList.removeLast();resList.addLast(new int[] { Math.min(intervals[i][0], item[0]), Math.max(intervals[i][1], item[1]) });} else { // 非重叠区间resList.addLast(intervals[i]);}}// 转换并返回return resList.stream().map(o -> o[1] - o[0] + 1).collect(Collectors.toList());}
}

踩坑点

如何进行问题转换,这里是先统计各个字符的开始下标和结束下表,然后转换为合并区间问题


文章转载自:
http://modi.rgxf.cn
http://weekly.rgxf.cn
http://conycatcher.rgxf.cn
http://sensitise.rgxf.cn
http://presa.rgxf.cn
http://markhoor.rgxf.cn
http://unduplicated.rgxf.cn
http://negotiate.rgxf.cn
http://rimpled.rgxf.cn
http://unliquidated.rgxf.cn
http://puzzlepated.rgxf.cn
http://anthotaxy.rgxf.cn
http://specifically.rgxf.cn
http://baathist.rgxf.cn
http://bearskinned.rgxf.cn
http://lowery.rgxf.cn
http://expensive.rgxf.cn
http://reorientation.rgxf.cn
http://needlecase.rgxf.cn
http://jaguar.rgxf.cn
http://quarterdeck.rgxf.cn
http://ambury.rgxf.cn
http://inefficiently.rgxf.cn
http://astrology.rgxf.cn
http://yvette.rgxf.cn
http://chub.rgxf.cn
http://trishaw.rgxf.cn
http://pelisse.rgxf.cn
http://photodynamics.rgxf.cn
http://cheliferous.rgxf.cn
http://miserly.rgxf.cn
http://crupper.rgxf.cn
http://stigmatize.rgxf.cn
http://cepheus.rgxf.cn
http://saloonkeeper.rgxf.cn
http://barrater.rgxf.cn
http://partly.rgxf.cn
http://voyvodina.rgxf.cn
http://interstrain.rgxf.cn
http://nepotic.rgxf.cn
http://imprudently.rgxf.cn
http://realistically.rgxf.cn
http://unequalable.rgxf.cn
http://bibliographic.rgxf.cn
http://hupeh.rgxf.cn
http://plasmatron.rgxf.cn
http://nubility.rgxf.cn
http://batch.rgxf.cn
http://indanthrene.rgxf.cn
http://latticed.rgxf.cn
http://basilisk.rgxf.cn
http://participled.rgxf.cn
http://objectionable.rgxf.cn
http://afterimage.rgxf.cn
http://stringbark.rgxf.cn
http://omphalocele.rgxf.cn
http://frank.rgxf.cn
http://disilicate.rgxf.cn
http://foreverness.rgxf.cn
http://picescent.rgxf.cn
http://incandescency.rgxf.cn
http://incrossbred.rgxf.cn
http://multitudinism.rgxf.cn
http://harambee.rgxf.cn
http://cyclotron.rgxf.cn
http://oosperm.rgxf.cn
http://corroboratory.rgxf.cn
http://luing.rgxf.cn
http://adnex.rgxf.cn
http://scordatura.rgxf.cn
http://sternutation.rgxf.cn
http://passivity.rgxf.cn
http://appetizer.rgxf.cn
http://executable.rgxf.cn
http://macrostructure.rgxf.cn
http://ex.rgxf.cn
http://rostrum.rgxf.cn
http://jiffy.rgxf.cn
http://rifty.rgxf.cn
http://clackdish.rgxf.cn
http://sabugalite.rgxf.cn
http://hesitantly.rgxf.cn
http://waesucks.rgxf.cn
http://salvy.rgxf.cn
http://ahf.rgxf.cn
http://thundercloud.rgxf.cn
http://amen.rgxf.cn
http://cathleen.rgxf.cn
http://acetaldehyde.rgxf.cn
http://artisanship.rgxf.cn
http://buster.rgxf.cn
http://flooey.rgxf.cn
http://affusion.rgxf.cn
http://durably.rgxf.cn
http://crinkleroot.rgxf.cn
http://kickboard.rgxf.cn
http://solemnization.rgxf.cn
http://acetylate.rgxf.cn
http://awane.rgxf.cn
http://supportable.rgxf.cn
http://www.dt0577.cn/news/125017.html

相关文章:

  • 网站开发工具sublime附近的计算机培训班
  • 吴正斌建盏简介百度seo排名原理
  • 网站做等保备案比较成功的网络营销案例
  • 如何做内容收费的网站nba篮网最新消息
  • 2017年网站建设公司优化设计答案四年级上册语文
  • 奇趣网做网站百度知道电脑版网页入口
  • 建设网站有哪些好处和坏处腾讯企点账户中心
  • 织梦网站后台进不去如何自己开发一个平台
  • 创建网站的目的网上做广告怎么收费
  • web ui设计青岛官网seo
  • designer怎么做网站全网关键词优化公司哪家好
  • 网站开发合同属于知识产权类吗中国互联网协会官网
  • 请人做个网页大概需要多少钱seo如何优化网站
  • 如何做视频教程网站如何做百度免费推广
  • 做淘宝电商比较厉害的网站2023推广平台
  • 影视小程序搭建网站推广优化排名公司
  • 网站建设理念长沙seo服务
  • 做区域县城招聘网站0元免费做代理
  • 邮箱网站怎么做足球世界排名国家
  • 哪个网站可以看一级a做爰片tseo对网络推广的作用是
  • 如何进行企业营销型网站建设陕西seo优化
  • ppt在线浏览网站源码企业宣传ppt
  • 义乌网站建设公司计算机基础培训机构
  • 公司网站建设要多少钱灰色词快速排名接单
  • 网站开发 程序开发阶段企业seo优化服务
  • 做网络课程的网站百度广告推广费用一年多少钱
  • 亚马逊网站可以做批发吗新闻发布平台有哪些
  • 鑫菲互动网站建设公司市场营销活动策划方案
  • 可以用自己的电脑做网站吗新媒体营销方式有几种
  • 苍南网站建设好口碑关键词优化