zoukankan      html  css  js  c++  java
  • 【LeetCode】刷题日记02

    最小差

    给定两个整数数组ab,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差。

    //利用双指针的方法
    var smallestDifference = function(a, b) {
        //先给两个数组排序
        a.sort((a,b) => a-b);
        b.sort((a,b) => a-b);
        //2147483647是题目给出的数组项最大值,方便与后面的值比较取小
        let i = 0, j = 0, min = 2147483647;
        while (i < a.length && j < b.length) {
            if (a[i] < b[j] && i < a.length) {
                min = Math.min(b[j] - a[i], min);
                i++;
            } else if (a[i] < b[j]) {
                min = Math.min(b[j] - a[i], min);
                //这种情况表示的是a数组的指针已经指向了最后一位,只能移动b的指针
                j++;
            }  else if (j < b.length) {
                min = Math.min(a[i] - b[j], min);
                j++;
            } else {
                min = Math.min(a[i] - b[j], min);
                i++;
            }
        }
        return min;
    };

    盛最多水的容器

    var maxArea = function(height) {
        let left = 0;
        let right = height.length - 1;
        let max = 0;
        while(left < right) {
            const area = (right - left) * Math.min(height[right], height[left]);
            if (area > max) {
                max = area
            }
            if (height[left] < height[right]) {
                const lastLeft = height[left];
                left++;
                while(height[left] <= lastLeft && left < right) {
                    left++;
                }
            } else {
                const lastRight = height[right];
                right--;
                while(lastRight >= height[right] && left < right) {
                    right--;
                }
            }
        }
        return max;
    };
  • 相关阅读:
    ssh免密登录
    jdk安装
    jq选择器
    使用<button></button>标签
    mysql连接字符串
    如何把maven项目转成web项目
    pl/sql连接远程oracle
    Oracle 存储过程
    SQL Server存储过程
    MySQL存储过程
  • 原文地址:https://www.cnblogs.com/hermionepeng/p/13261296.html
Copyright © 2011-2022 走看看