zoukankan      html  css  js  c++  java
  • 刷题35(力扣2道题+牛客1道题)

    65.面试题57 - II. 和为s的连续正数序列

    题目链接

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof

    题目描述

    输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。

    序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。

    示例1

    输入:target = 9
    输出:[[2,3,4],[4,5]]

    示例2

    输入:target = 15
    输出:[[1,2,3,4,5],[4,5,6],[7,8]]
     

    限制:

    1 <= target <= 10^5

    关键技术

    滑动窗口

    题目分析

    1. 设置滑动窗口的左边界和右边界默认值分别为1,2。
    2. 求滑动窗口的左边界到右边界的和sum(包括左边界到右边界)。
    3. 判断target和sum的大小,如果sum == target,把右边界往右移一位(right++),如果sum > target,把左边界往右移一位(left++),如果sum < target,把右边界往右移一位(right++)。
    4. 循环终止条件:右边界大于Math.ceil(target/2)+1。
    /**
     * @param {number} target
     * @return {number[][]}
     */
    var findContinuousSequence = function(target) {
        let left = 1;         //左边界
        let right = 2;      //右边界
        let sum = left + right;    //滑动窗口左边界到右边界的和
        let res = [];
        while(right < Math.ceil(target/2)+1){
            if(sum == target){
                res.push(range(left,right));
                right++;
                sum += right;
            }else if(sum < target){
                right++;
                sum += right;
            }else if(sum > target){
                sum -= left;
                left++;
            }
        }
        return res;
    };
    
    function range(left,right){
        let arr = [];
        for(let i=left; i<=right; i++){
            arr.push(i);
        }
        return arr;
    }
    

     

    66.不用额外变量交换两个整数的值

    题目链接

    https://www.nowcoder.com/practice/1827258942284b2abfe65809785ac91a?tpId=101&&tqId=33210&rp=6&ru=/activity/oj&qru=/ta/programmer-code-interview-guide/question-ranking

    题目描述

    不用额外变量交换两个整数的值。

    输入描述:

    输出一行,包含两个整数n和m(−10^9≤n,m≤10^9)。

    输出描述:

    输出交换后的n和m的值。
    示例1

    输入

    2 3

    输出

    3 2

    备注:

    时间复杂度O(1)O(1),额外空间复杂度O(1)O(1)。

    题目分析

    这。。。。没啥说的。。 

    var input = readline().split(' ');
    var n = input[0];
    var m = input[1];
    print(m,n);
    

     

    67.HTTP状态码

    题目链接

    https://www.nowcoder.com/practice/99dba043761e43c2a6f931e2c5c247c7?tpId=107&&tqId=33355&rp=7&ru=/activity/oj&qru=/ta/beginner-programmers/question-ranking

    题目描述

    KiKi访问网站,得到HTTP状态码,但他不知道什么含义,BoBo老师告诉他常见HTTP状态码:200(OK,请求已成功),202(Accepted,服务器已接受请求,但尚未处理。)400(Bad Request,请求参数有误),403(Forbidden,被禁止),404(Not Found,请求失败),500(Internal Server Error,服务器内部错误),502(Bad Gateway,错误网关)。

    输入描述

    多组输入,一行,一个整数(100~600),表示HTTP状态码。

    输出描述

    针对每组输入的HTTP状态,输出该状态码对应的含义,具体对应如下:
    200-OK
    202-Accepted
    400-Bad Request
    403-Forbidden
    404-Not Found
    500-Internal Server Error
    502-Bad Gateway
    示例1

    输入

    200

    输出

    OK

    题目分析

    这。。。。也没啥说的。。 

    var input;
    while(input = readline()){
        switch(parseInt(input)){
            case 200 : console.log('OK');break;
            case 202 : console.log('Accepted');break;
            case 400 : console.log('Bad Request');break;
            case 403 : console.log('Forbidden');break;
            case 404 : console.log('Not Found');break;
            case 500 : console.log('Internal Server Error');break;
            case 502 : console.log('Bad Gateway');break; 
        }
    }
    

      

      
  • 相关阅读:
    mysql
    mysql
    mysql
    mysql
    mysql
    mysql
    mysql
    mysql
    mysql
    为你的react项目添加路由
  • 原文地址:https://www.cnblogs.com/liu-xin1995/p/12417388.html
Copyright © 2011-2022 走看看