gas-station

题目:牛客网

解题思路:

从每个元素遍历gas数组,例如0->gas.len-1,1->gas.len-1->1,2->gas.len-1->2...,在遍历的过程中若cost[j] > gas[j]+more,则从元素i无法走完环形路,如果在一次循环中满足条件即flag==true,则直接返回下标,否则进入下一个元素的循环。

public class Solution {
    public int canCompleteCircuit(int[] gas, int[] cost) {
        for(int i = 0 ; i < gas.length; i++){
            int more = 0;
            boolean flag = true;
            for(int j = i ; j < gas.length; j++){
                if(cost[j] > gas[j]+more){
                    flag = false;
                    break;
                }
                else{
                    if(j == gas.length-1)
                        more =  more+ gas[j]-cost[j];
                    else
                        more = more + gas[j]-cost[j];
                }
            }
            for(int j = 0 ; j < i ; j++){
                if(flag == false){
                    break;
                }
                if(cost[j] > gas[j]+more){
                    flag = false;
                    break;
                }
                else{
                    if(j == gas.length-1)
                        more =  more+ gas[j]-cost[j];
                    else
                        more = more + gas[j]-cost[j];
                }
            }
            if(flag == true){
                return i;
            }
            else{
                continue;
            }
        }
        return -1;
    }
}

 

全部评论

相关推荐

03-10 11:23
门头沟学院 Java
鹿LF:计算机面试就跟数学题一样,没什么实际价值,但只能这么筛选,本质是考察你的努力,智力和学习能力
点赞 评论 收藏
分享
AI牛可乐:哇,听起来你很激动呢!杭州灵枢维度科技听起来很厉害呀~你逃课去白马培训,老冯会同意吗?不过既然你这么感兴趣,肯定是有原因的吧! 对了,想了解更多关于这家公司或者求职相关的问题吗?可以点击我的头像私信我哦,我可以帮你更详细地分析一下!
你都用vibe codi...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务