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

自动化毕设题目网站开发百度认证

自动化毕设题目网站开发,百度认证,人民政府网站的信息资源建设,检索网站怎么做问题背景 给你一个整数数组 a r r arr arr,以及 a 、 b 、 c a、b 、c a、b、c 三个整数。请你统计其中好三元组的数量。 如果三元组 ( a r r [ i ] , a r r [ j ] , a r r [ k ] ) (arr[i], arr[j], arr[k]) (arr[i],arr[j],arr[k]) 满足下列全部条件&#xff…

问题背景

给你一个整数数组 a r r arr arr,以及 a 、 b 、 c a、b 、c abc 三个整数。请你统计其中好三元组的数量。
如果三元组 ( a r r [ i ] , a r r [ j ] , a r r [ k ] ) (arr[i], arr[j], arr[k]) (arr[i],arr[j],arr[k]) 满足下列全部条件,则认为它是一个 好三元组

  • 0 ≤ i < j < k < a r r . l e n g t h 0 \le i < j < k < arr.length 0i<j<k<arr.length
  • ∣ a r r [ i ] − a r r [ j ] ∣ ≤ a |arr[i] - arr[j]| \le a arr[i]arr[j]a
  • ∣ a r r [ j ] − a r r [ k ] ∣ ≤ b |arr[j] - arr[k]| \le b arr[j]arr[k]b
  • ∣ a r r [ i ] − a r r [ k ] ∣ ≤ c |arr[i] - arr[k]| \le c arr[i]arr[k]c

其中 ∣ x ∣ |x| x 表示 x x x 的绝对值。
返回 好三元组的数量

数据约束

  • 3 ≤ a r r . l e n g t h ≤ 100 3 \le arr.length \le 100 3arr.length100
  • 0 ≤ a r r [ i ] ≤ 1000 0 \le arr[i] \le 1000 0arr[i]1000
  • 0 ≤ a , b , c ≤ 1000 0 \le a, b, c \le 1000 0a,b,c1000

解题过程

题中要求的约束有三个,暴力枚举的时间复杂度是 O ( N 3 ) O(N ^ 3) O(N3)
如果数组是有序的,那可以很容易地提高时间方面的效率,但是结果与元素的初始位置有关,所以不方便直接排序。
退而求其次,定义一个下标数组,对它进行排序。
然后将数组中的元素当作 j j j 来遍历,将满足 ∣ a r r [ i ] − a r r [ j ] ∣ ≤ a |arr[i] - arr[j]| \le a arr[i]arr[j]a 以及 ∣ a r r [ j ] − a r r [ k ] ∣ ≤ b |arr[j] - arr[k]| \le b arr[j]arr[k]b
两个条件的原数组中的元素分别记录到哈希表中。
接下来只要再求满足第三个条件的元素对的数量,根据绝对值的定义,可以在线性的时间内得到合法结果的上下限。

具体实现

class Solution {public int countGoodTriplets(int[] arr, int a, int b, int c) {Integer[] idx = new Integer[arr.length];Arrays.setAll(idx, i -> i);Arrays.sort(idx, (i, j) -> arr[i] - arr[j]);int res = 0;for (int j : idx) {int cur = arr[j];List<Integer> list1 = new ArrayList<>();for (int i : idx) {if (i < j && Math.abs(arr[i] - cur) <= a) {list1.add(arr[i]);}}List<Integer> list2 = new ArrayList<>();for (int k : idx) {if (k > j && Math.abs(arr[k] - cur) <= b) {list2.add(arr[k]);}}int left = 0;int right = 0;for (int item : list1) {while (right < list2.size() && list2.get(right) <= item + c) {right++;}while (left < list2.size() && list2.get(left) < item - c) {left++;}res += right - left;}}return res;}
}
http://www.dtcms.com/wzjs/452182.html

相关文章:

  • 成都注册公司核名网站技能培训有哪些
  • 4s店网站建设方案seo关键词优化系统
  • 广东专业网站优化公司电商网络推广怎么做
  • 一个人开公司做网站seo快速工具
  • c2c电子商务网站策划简单网页制作模板
  • 魔兽做图下载网站北京疫情又严重了
  • 建设网站公司兴田德润i优惠吗seo基础教程使用
  • wap建站系统全国疫情最新情况公布
  • wordpress获取版权声明aso如何优化
  • 商城网站 没有什么文章 怎样优化软文经典案例
  • 百度对网站建设公司软文营销常用的方式是什么
  • 淘客网站如何做能加快收录线上营销的优势和劣势
  • 2015选择做导航网站11月将现新冠感染高峰
  • 完成网站建设淘宝客seo推广教程
  • 威海做网站的百度推广天天打骚扰电话
  • 个人学做网站免费入驻的卖货平台有哪些
  • 单县网站建设seo优化有哪些
  • 做百度企业网站注册网址在哪里注册
  • 开平市城乡建设局网站微网站建站平台
  • 重庆网站推广入口关键词排名点击软件工具
  • 怎样做自己的微商网站6百度信息流效果怎么样
  • 关于网站备案的44个问题真正永久免费网站建设
  • 深圳网站制作公司深圳app开发手游推广平台哪个好
  • 网站建设军成seo的工具有哪些
  • 做视频网站视频来源微信管理软件
  • 公司网站需要备案百度sem推广
  • 改版百度不收录网站百度app官方下载安装
  • wordpress付费商业站如何提高自己的营销能力
  • 济南网站排名推广百度推广落地页
  • 给一瓶水做网站多少关键词排名优化软件