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

合肥做网站的的公司有哪些百度竞价优化排名

合肥做网站的的公司有哪些,百度竞价优化排名,互联网营销与推广,免费网站服务器安全思路 方法一:使用Set集合 1.首先是三层for循环,遍历,并且遇到不满足的情况,便跳过,继续计算。不如前导为0,以及遍历同一个数组下标的情况 2.使用Set集合来确保答案是唯一的,使用桶来标记也是可以的 3.但是…

思路

方法一:使用Set集合

1.首先是三层for循环,遍历,并且遇到不满足的情况,便跳过,继续计算。不如前导为0,以及遍历同一个数组下标的情况 2.使用Set集合来确保答案是唯一的,使用桶来标记也是可以的 3.但是使用了Set集合就要将其转换为数组来返回,因为题目要求返回的是数组,并且也要用到一些Set的方法。
class Solution {public int[] findEvenNumbers(int[] digits) {Set<Integer> resultSet = new HashSet<>();int len = digits.length;for (int i = 0; i < len; i++) {if (digits[i] == 0) continue;for (int j = 0; j < len; j++) {if (j == i) continue;for (int k = 0; k < len; k++) {if (k == i || k == j || digits[k] % 2 != 0) continue;resultSet.add(digits[i] * 100 + digits[j] * 10 + digits[k]);}}}//将Set集合转为ListList<Integer> res = new ArrayList<>(resultSet);Collections.sort(res);int[] resultArray = new int[res.size()];for (int i = 0; i < res.size(); i++) {resultArray[i] = res.get(i);}return resultArray;}}

通过情况:

方法二:使用数字标记

1.因为是三位的偶数,所以只要大小为1k的数字即可

2.前面的判断条件都是一样的,不满足的情况就跳过

3.不同的是,因为不是Set集合,没有办法自动去重,但是好在范围只在100~999的偶数即可,所以i+=2

4.因为不知道有多少满足条件的数字,所以仍然使用List集合,并且在得到结果后再转为数组。

class Solution {public int[] findEvenNumbers(int[] digits) {int[] res=new int[1000];int len = digits.length;for (int i = 0; i < len; i++) {if (digits[i] == 0) continue;for (int j = 0; j < len; j++) {if (j == i) continue;for (int k = 0; k < len; k++) {if (k == i || k == j || digits[k] % 2 != 0||res[digits[i] * 100 + digits[j] * 10 + digits[k]]!=0) continue;res[digits[i] * 100 + digits[j] * 10 + digits[k]]++;}}}List<Integer> resultList=new ArrayList<>();for (int i = 100; i <999 ; i+=2) {if(res[i]!=0)resultList.add(i);}int[] resultArray = new int[resultList.size()];for (int i = 0; i < resultList.size(); i++) {resultArray[i] = resultList.get(i);}return resultArray;}}

通过情况:

方法三:直接对0~9出现的数字进行标记

1.既然方法二用的数组标记,是对100-999中的进行标记。那么还有没有更简便的方法呢?

2.直接对0-9的数字进行标记,出现了,则++

3.并且i从1开始,这样就可以避免前导0的问题,k+=2,就能确保找到的都是偶数

4.计算的时候暂时减去使用的次数,这是为了防止,后面的位数进行多次的使用,如果次数不足的情况下。计算完成后再加回来,因为便利和出现的次数无关,遍历是从0~9开始的遍历,如果数字不存在,则会跳过。

5.最后仍是将List转化为 int[ ],返回

class Solution {public int[] findEvenNumbers(int[] digits) {// 创建一个长度为10的数组cnt来记录digits中各个数字(0-9)出现的次数int[] cnt = new int[10];for (int d : digits) {cnt[d]++; // 统计每个数字出现的次数}// 创建一个列表list用于存储找到的所有符合条件的三位偶数List<Integer> list = new ArrayList<>();// 外层循环遍历可能的百位数字i (从1到9,避免前导零)for (int i = 1; i < 10; i++) {if (cnt[i] == 0) continue; // 如果该数字不存在于digits中,则跳过// 暂时减少百位数字i的计数,表示它已经被使用cnt[i]--;// 中间层循环遍历可能的十位数字j (从0到9)for (int j = 0; j < 10; j++) {if (cnt[j] == 0) continue; // 如果该数字不存在于digits中,则跳过// 暂时减少十位数字j的计数,表示它已经被使用cnt[j]--;// 内层循环遍历可能的个位数字k (从0到9,步长为2,确保是偶数)for (int k = 0; k < 10; k += 2) {if (cnt[k] > 0) { // 如果该偶数存在于digits中// 构建三位数并添加到结果列表中list.add(100 * i + 10 * j + k);}}// 恢复十位数字j的计数cnt[j]++;}// 恢复百位数字i的计数cnt[i]++;}// 将结果列表转换为数组int[] nums = new int[list.size()];for (int i = 0; i < list.size(); i++) {nums[i] = list.get(i);}// 返回结果数组return nums;}}

http://www.jinmujx.cn/news/118807.html

相关文章:

  • 怎么做招聘有哪些网站网站seo关键词优化技巧
  • 二手车为什么做网站地推十大推广app平台
  • 网站稳定期怎么做竞价推广渠道
  • 免费字体设计网站新闻头条最新消息今日头条
  • 做网站的相关规定国际新闻最新消息2022
  • 开发个蔬菜配送小程序的费用茂名百度seo公司
  • 做国外直播网站上海最新新闻事件今天国内
  • 网站开发经理具备什么知识有哪些网站可以免费发布广告
  • 足彩网站怎样做推广常见的网站推广方法有哪些
  • 为网站做一则广告中国宣布取消新冠免费治疗
  • 做个手机网站深度优化
  • 休闲食品网站建设策划书百度seo 优化
  • 网站在哪里设置关键字seo去哪里培训
  • 卢湾区网站建设制作网络市场调研
  • 成人本科自考报名入口官网自己怎么优化网站排名
  • 做胃镜需那好天津津门网站A宁波关键词优化排名工具
  • 男女做暧昧试看网站网站排名优化价格
  • 比尤果网做的好的网站湖州seo排名
  • 辛集专业网站建设广西seo关键词怎么优化
  • 寻找项目做的网站临沂seo公司稳健火星
  • 购买主机可以做网站吗营销型网站seo
  • ubuntu wordpress使用seo公司的选上海百首网络
  • 小程序招商加盟平台seo网站推广计划
  • wordpress前端会员中心梁水才seo优化专家
  • 甘肃疫情最新数据河南百度关键词优化排名软件
  • 电商网站功能百度识图在线使用
  • 校园网二级网站建设与管理banfa四川餐饮培训学校排名
  • 做网站推广微信叫什么网名好推广营销网络
  • 辽源做网站公司用html制作淘宝网页
  • b2b电子商务网站盈利模式关键词排名优化报价