当前位置: 欣欣网 > 码农

投了20家简历,目前0面试,秋招的压力真的让我快崩溃了。。

2024-10-17码农

一网友抱怨,每天坚持投5家简历,目前已经投了20家,依然是 0 面试。如果是985高校,精准投递20家也够了。关键安徽工业大学既不是985,也不是211,如果投的都是一些大厂,简历被拒的可能性还是存在的, 主要是人太多了, 所以投递20家明显不够,加油继续投。

--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第367题:有效的完全平方数

问题描述


来源:LeetCode第367题

难度:简单

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。不能使用任何内置的库函数,如 sqrt 。

示例1:

输入 :num = 16

输出 :true

解释 :返回 true ,因为 4 * 4 = 16 且 4 是一个整数。

示例2:

输入 :num = 14

输出 :false

解释 :返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。

  • 1 <= num <= 2^31 - 1

  • 问题分析


    这题说的是判断一个数是否是完全平方数,并且不能使用内置的函数sqrt。我们知道计算一个数的平方根可以使用 ,这个之前讲过,就不在重复介绍。

    我们来看另一种解决方式,根据下面的公式。

    (n+1)^2=n^2+2n+1

    我们可以得出任何完全平方数都可以表示成: 1+3+ 5 + 7 +……,所以对于一个数 我们从 1 开始减, 然后是 3 , 接着是 5…… ,如果最后等于 0 说明它是完全平方数

    JAVA:

    // 任何数的平方都可以写成 1+3+5+7+...
    publicbooleanisPerfectSquare(int num){
    int i = 1;
    while (num > 0) {
    num -= i;
    i += 2;
    }
    return num == 0;
    }

    C++:

    public:
    boolisPerfectSquare(int num){
    int i = 1;
    while (num > 0) {
    num -= i;
    i += 2;
    }
    return num == 0;
    }

    Python:

    # 任何数的平方都可以写成 1+3+5+7+...
    defisPerfectSquare(self, num: int) -> bool:
    i = 1
    while num > 0:
    num -= i
    i += 2
    return num == 0