Java算法--网易真题
第一道题
给定一个正数数组arr,表示每个小朋友的得分
任何两个相邻的小朋友,如果得分一样,怎么分糖果无所谓,
但如果得分不一样,分数大的一定要比分数少的多拿一些糖果
假设所有的小朋友坐成一个环形,
返回在不破坏以上任何一条规则的情况下,需要的最少糖果数
public static int minCandy(int[] candies) { int length = candies.length; int minIndex = 0; for(int i = 1; i < candies.length; i ++) { if(candies[i] <= candies[lastIndex(i, length)] && candies[i] <= candies[nextIndex(i, length)]) { minIndex = i; break; } } //生成新的数组 int[] newArray = new int[length + 1]; for(int i = 0; i <= length; i ++, minIndex = nextIndex(minIndex, length)) {
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
八股文+场景题+算法真题 文章被收录于专栏
Java全新整理八股文 + 场景题 + 算法 精心设计,面试命中率超过80% 专栏优势: 1、问题和答案已经整理到位,答案更专业,可以直接回答,不需要额外总结! 2、场景题讲解清晰,适用于大部分场景的项目,并且持续更新中 3、分享学习心得【知识点的广度和深度,算法有哪些坑,如何准备面试等等】