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

温州微网站制作哪里有网页制作与网站建设设计价格

温州微网站制作哪里有,网页制作与网站建设设计价格,做效果图的素材网站,手机网站适应屏幕1、(数组连续和): 这段代码是解决“数组连续和”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于计算给定数组中有多少个连续区间的和大于等于给定值x。 main方法首先读取数组的长度n和阈值x&…

1、(数组连续和):

这段代码是解决“数组连续和”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于计算给定数组中有多少个连续区间的和大于等于给定值x

main方法首先读取数组的长度n和阈值x,然后读取数组nums中的元素。接着,调用getResult方法并打印结果。

getResult方法使用前缀和数组preSum来高效地计算连续区间的和。前缀和数组preSum[i]表示数组中前i个元素的和。通过遍历数组并使用双指针技术(在这里是两个索引lr),代码可以找到所有满足条件的连续区间。当当前区间的和大于等于x时,由于数组中的数都是正整数,可以确定从当前右指针r开始向左直到数组末尾的所有区间的和也都大于等于x。因此,可以将计数器count增加相应的数量,并将左指针l向右移动以继续寻找下一个区间。

2、(求最多可以派出多少支团队):

这段代码是解决“求最多可以派出多少支团队”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于计算在给定最低能力值要求下,最多可以组成多少支团队。

main方法首先读取总人数n,然后读取每个人的能力值数组power,最后读取团队要求的最低能力值minPower。接着,调用getResult方法并打印可以派出的团队数量。

getResult方法首先对能力值数组进行升序排序。然后使用双指针技术,从数组的两端开始,先计算能够单独组队的人数(即能力值大于等于minPower的人数)。接着,从左指针l开始,尝试与右指针r配合,形成能力值总和大于等于minPower的团队。如果两个人的能力值之和小于minPower,则左指针l向右移动,寻找下一个可能的团队组合。

package OD223;import java.util.Scanner;/*** @description 数组连续和* @level 6* @score 100*//*** 题目描述* 给定一个含有N个正整数的数组, 求出有多少个连续区间(包括单个正整数), 它们的和大于等于x。* <p>* 输入描述* 第一行两个整数N x(0 < N <= 100000, 0 <= x <= 10000000)* <p>* 第二行有N个正整数(每个正整数小于等于100)。* <p>* 输出描述* 输出一个整数,表示所求的个数。* <p>* 注意:此题对效率有要求,暴力解法通过率不高,请考虑高效的实现方式。*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//数组个数int n = sc.nextInt();//需要大于等于xint x = sc.nextInt();int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = sc.nextInt();}System.out.println(getResult(nums, x));}//有多少个连续数组和大于等于xpublic static long getResult(int[] nums, int x) {long len = nums.length;long count = 0;//因为有效率要求,不能每次都求和,用前缀和来表示long[] preSum = new long[(int) (len + 1)];//preSum[i]表示前面i个数的和for (int i = 1; i <= len; i++) {preSum[i] = preSum[i - 1] + nums[i - 1];}//while循环int l = 0;int r = 1;while (r <= len) {long sum = preSum[r] - preSum[l];if (sum >= x) {//[l,r]区间的和已经大于x了,则[l,r,....len-1]区间的和必定大于x (都是正整数)count += len - r + 1;//窗口滑动l++;r = l + 1;} else {r++;}}return count;}}
package OD226;import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;/*** @description 求最多可以派出多少支团队* @level 5* @score 100*//*** 题目描述* 用数组代表每个人的能力,一个比赛活动要求参赛团队的最低能力值为N,每个团队可以由1人或者2人组成,且1个人只能参加1个团队,计算出最多可以派出多少只符合要求的团队。* <p>* 输入描述* 第一行代表总人数,范围1-500000* 第二行数组代表每个人的能力* 数组大小,范围1-500000* 元素取值,范围1-500000* 第三行数值为团队要求的最低能力值,范围1-500000* 输出描述* 最多可以派出的团队数量*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);//代表总人数int n = sc.nextInt();//每个人的能力值int[] power = new int[n];for (int i = 0; i < n; i++) {power[i] = sc.nextInt();}//团队要求最低能力值int minPower = sc.nextInt();System.out.println(getResult(power, minPower));}//最多可以派出多少团队 能一个人满足的就一个人组队public static int getResult(int[] power, int minPower) {int n = power.length;//升序排列Arrays.sort(power);//双指针int l = 0;int r = n - 1;int count = 0;//先记录单人组队while (r >= l && power[r] >= minPower) {count++;r--;}//把小于<=minPower的两两分组 尽可能多while (l < r) {int sum = power[l] + power[r];//如果此时无法组队,则l位置的不可能组队成功if (sum < minPower) {l++;} else {//组队成功count++;l++;r--;}}return count;}
}
http://www.yayakq.cn/news/667247/

相关文章:

  • 广东建设继续教育网站首页wordpress如何进入仪表盘
  • 图片生成链接网站有什么好看的网站资源
  • 公司网站建设费用会计科目做网站用的是什么语言
  • 做网站宽高怎么决定浪漫表白网页一键生成
  • 制作企业网站的问题网站建议反馈应该怎么做
  • 网站建设推广服务费的税率是贵州省建设厅建筑质监站网站
  • 打开这个你会感谢我的网站艾宗建设计公司网站
  • 大连企业网站开发万网域名注册查询
  • 哪个网站做分享赚佣金设计公司logo制作
  • 做旅行攻略的网站长春网络推广小技巧
  • 电商网站平台有哪些功能建e网如何合并多个全景图
  • 网站做专业团队爱站网排名
  • 俱乐部网站 模板唐山做企业网站公司
  • 网站开发合同的缺陷html5手机app网站模板免费下载
  • 开个做网站的公司 知乎开发公司和建筑公司同一法人
  • 做一手房有哪些网站比较好啊免费游戏大全
  • 机票旅游网站开发多语言站点 wordpress
  • 做网站运营怎么样海外营销推广 平台
  • 网站原型设计网页浏览器翻译
  • 佛山网站建设优势html5 网站 代码
  • 网站备案通管局本周国内重大新闻十条
  • 个人网站备案涉及支付宝郴州网红景点排名
  • 哪里有做杂志的免费模板下载网站全案品牌策划公司
  • 网站备案到期了怎么办.net网站开发源码
  • 网站推广策划的策略网站备案有时间吗
  • 做seo网站优化价格招代理的网站要怎么做的
  • 建筑人才网官方网站评职称制作视频的免费软件
  • 网站设计用什么字体好商标设计logo图案软件免费
  • 做试题的网站阿里云虚拟主机网站吗
  • 网站制作html代码网站开发工具总结