刷题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;
    }
}
发布了45 篇原创文章 · 获赞 0 · 访问量 996

猜你喜欢

转载自blog.csdn.net/weixin_41796393/article/details/104699610