栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

10

10 10 10 10 20 20 30 30 40 40

输出例子 1:

30

解答:

  1. #

  2. include < iostream > using namespace std;

  3. int main()

  4. {

  5. int n, t = 0, syn = 0;

  6. int price[1000] = {

  7. 0

  8. };

  9. cin >> n;

  10. while(n--)

  11. {

  12. cin >> t;

  13. price[t] = 1;

  14. }

  15. t = 0;

  16. for(int i = 0; i < 1000; i++)

  17. {

  18. if(price[t] && syn < 3) syn++;

  19. if(syn == 3) break;

  20. t++;

  21. }

  22. syn == 3 ? cout << t : cout << -1;

  23. }

2、一个数轴上共有 N 个点,第一个点的坐标是度度熊现在位置,第 N-1 个点是度度熊的家。现在他需要依次的从 0 号坐标走到 N-1 号坐标。

但是除了 0 号坐标和 N-1 号坐标,他可以在其余的 N-2 个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?

解答:

从 N-2 个坐标中选出一个点,并直接将这个点忽略掉。直接忽略一个点只会直接影响到,这个节点前后节点的距离。这个 影响的距离我们暂且命名为优化距离,将所有节点按顺序组成三个节点的集合,通过这种方式只需要通过一次循环便能得到结果。

优化距离越大说明如果去掉这个集合的中点元素将会使得总距离越短,下面上代码。

  1. import

  2. java.util.

  3. Scanner;

  4. publicclass

  5. Main

  6. {

  7. publicstaticvoid

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

main(String[] args)

  1. {

  2. Scanner

  3. scanner = new

  4. Scanner(System.in);

  5. int

  6. length = scanner.nextInt();

  7. int[] arrays = newint[length];

  8. for(int i = 0; i < length; i++)

  9. {

  10. arrays[i] = scanner.nextInt();

  11. }

  12. int

  13. sum = 0,

  14. int

  15. repetition = 0,

  16. intselect = 0,

  17. int

  18. add = 0,

  19. intlast = 0,

  20. int

  21. optimizeDistance = 0;

  22. for(int i = 0; i <= (arrays.length - 3); i++)

  23. {

  24. intbegin = arrays[i];

  25. int

  26. mid = arrays[i + 1];

  27. intend = arrays[i + 2];

  28. //三个点之间的距离

  29. int

  30. threePointDistance = Math.abs(mid - begin) + Math.abs(end - mid);

  31. //两个点之间的距离 即被多次计算待会需要减掉的距离

  32. int

  33. twoPointDistance = Math.abs(end - mid);

  34. int

  35. contrast = threePointDistance - Math.abs(begin - end);

  36. repetition += twoPointDistance;

  37. sum += threePointDistance;

  38. last = twoPointDistance;

  39. if(contrast > optimizeDistance)

  40. {

  41. optimizeDistance = contrast;

  42. select = threePointDistance;

  43. add = Math.abs(end - begin);

  44. }

  45. }

  46. System.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号