首页 > 编程语言 >Java LeetCode每日一题

Java LeetCode每日一题

时间:2024-09-16 22:50:10浏览次数:3  
标签:distance Java int 每日 距离 ADistance start length LeetCode

        1184. 公交站间的距离

        需求:

        环形公交路线上有 n 个站,按次序从 0 到 n - 1 进行编号。我们已知每一对相邻公交站之间的距离,distance[i] 表示编号为 i 的车站和编号为 (i + 1) % n 的车站之间的距离。
        环线上的公交车都可以按顺时针和逆时针的方向行驶。
        返回乘客从出发点 start 到目的地 destination 之间的最短距离。

        

        思路:要么顺着走,要么反着走,反着走的距离 = 距离总和 - 顺着走的距离

package JavaLeetCodeExercise20240916;

public class LeetCodeExercise {
    public static void main(String[] args) {
        int[] distance = {1,2,3,4};
        Solution solution = new Solution();
        System.out.println(solution.distanceBetweenBusStops(distance, 0, 3));
    }
}

class Solution {
    public int distanceBetweenBusStops(int[] distance, int start, int destination) {
        int minDistance = 0;
        int sumDistance = 0;
        int ADistance = 0;
        int length = distance.length;
        boolean flag = true;
        for (int i = 0; i < length; i++) {
            sumDistance += distance[start];
            if (start == destination) {
                flag = false;
            }
            if (flag) {
                ADistance += distance[start];
            }
            start = (start + 1) % length; // 循环队列经典写法
        }
        int anonterDistance = sumDistance - ADistance;
        return ADistance < anonterDistance ? ADistance : anonterDistance;
    }
}

标签:distance,Java,int,每日,距离,ADistance,start,length,LeetCode
From: https://blog.csdn.net/Aishangyuwen/article/details/142308498

相关文章

  • java基础(小技巧)
    文章目录一、日志输出二、字符串拼接三、日期比较四、常用注解五、Lombok的原理提示:以下是本篇文章正文内容,下面案例可供参考一、日志输出之前使用的方式。在要使用的类里面定义日志类:privatestaticLoggerlogger=LoggerFactory.getLogger(“xxx”);现在使......
  • Day17 二叉树part07| LeetCode 235. 二叉搜索树的最近公共祖先 ,701.二叉搜索树中的插
    235.二叉搜索树的最近公共祖先235.二叉搜索树的最近公共祖先利用二叉搜索树的特性——有序树,可知,如果中间节点是p和q的公共节点,那个中间节点的数值一定在[p,q]区间因此,从根节点往下搜索,遇到的第一个位于[p,q]或[q,p]区间的节点就是最近公共祖先classSolution{......
  • SpreadJS 17.1.5 -JavaScript 电子表格组件
    SpreadJS JavaScript电子表格组件示例全球最畅销的JavaScript电子表格,包含500多个Excel函数快速提供真正类似Excel的电子表格体验-完全不依赖Excel。创建财务应用程序,仪表板,图表,数据透视表,性能基准,科学实验室笔记本以及其他类似的JavaScript电子表格应用程序......
  • Java 值传递与引用传递
    以下是包含引用的完整博客文章,以markdown格式输出,附带“Java只有值传递”的相关参考来源。Java是一种广泛使用的面向对象编程语言,但对于值传递(passbyvalue)和引用传递(passbyreference)的理解,很多开发者往往会混淆。在这篇文章中,我将详细解释Java的传递机制,并引入对......
  • JAVA-IO 指定目录中查找文件,文件合并分割
    指定目录中查找文件publicstaticList<String>findFile(Filetarget,StringfileName){ArrayList<String>path=newArrayList<>();if(target==null){returnpath;}if(target.isDirectory()){File[]files=target.li......
  • JAVA-IO获取resource WEB-INF 中文件 JAR包中
    getResource+getPath()classPaththis.getClass().getClassLoader().getResource(StringUtils.EMPTY).getPath()Stringpath=this.getClass().getClassLoader().getResource(fileName).getPath();StringfilePath=URLDecoder.decode(path,StandardCharsets.UTF_8);......
  • LeetCode题集-4 - 寻找两个有序数组的中位数,图文并茂,六种解法,万字讲解
    题目:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。算法的时间复杂度应该为O(log(m+n))。作为目前遇到的第一个困难级别题目,我感觉这题还是挺难的,研究了三天总算研究明白了,下面就给大家分享一下这题的几种解法,请......
  • 每日总结
    9.16上午补了一下暑假姚子奇讲的题,让姚子奇给我调个题他都不带鸟我的。P4180[BJWC2010]严格次小生成树先用kruskal将最小生成树求出来,之后再枚举不在最小生成树的每条边,设每条边的端点为x,y,如果加入这条边,则会形成一个环,于是我们考虑用这条边替换x和y路径上的一条边,但是由于是......
  • [Java面向对象]封装继承多态
    封装、继承和多态是面向对象编程的三大特征。封装封装概念封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(方法)才能对数据进行操作。封装的好处隐藏实现的细节一个操作具体的实现过程往往很复杂,通过封装用户......
  • 软件设计原则(Java实现/给出正例反例)
    文章目录前言1.开闭原则(Open/ClosedPrinciple)违反开闭原则的示例遵循开闭原则的示例2.里氏代换原则(LiskovSubstitutionPrinciple)违反里氏代换原则的示例遵循里氏代换原则的示例3.依赖倒转原则(DependencyInversionPrinciple)违反依赖倒转原则的示例遵循依赖倒转......