面试被打成骨折!因不满面试官的无礼态度,与其争辩了几句,便遭其殴打致腰椎骨折。。
刚看到个贴子,说深圳一女生面试被面试官打到腰椎骨折,原因是对方无礼她回了几句,还要求删掉简历信息,结果反被围堵殴打。
这事作为程序员看真是🤯,职场再内卷也不至于打人吧?面试本该是平等沟通,不是权力压制,更不是人身攻击。网友有的说要勇敢维权,我完全赞同,技术圈也要有底线意识。
从开发的思路讲,Bug要改,制度的漏洞更要修,企业如果纵容这种暴力,就是系统性缺陷。求职是双向选择,不尊重人的公司,再高薪也别去。毕竟代码能重构,腰椎可不能热修复。希望大家求职路上多留心,保护好自己。【备注:文末可领最新资料】
面试题:完全平方数
前几天晚上在咖啡店,我等咖啡的时候刷手机,刷到有人问“怎么快速判断一个数是不是完全平方数”,结果底下的评论有的给了特别复杂的公式,看得我一愣一愣的。其实啊,这事没那么玄乎。
完全平方数,说白了,就是一个整数能被开平方,而且开出来还是整数,比如 1、4、9、16 这种。 9 = 3×3,16 = 4×4,对吧,就是这种一眼就看出来“方方正正”的数。
日常生活里的例子
完全平方数其实挺常见的,比如:
正方形地砖的总数(每边 5 块砖,就是 25 块,总数刚好是完全平方数) 正方形像素点的数量,比如 1920×1920 这种就是平方数
所以啊,它本质就是:某个整数自己乘自己。
Python怎么判断?
其实最直观的方法,就是开平方看看是不是整数。 比如下面这段:
import math
defis_perfect_square(n):
if n < 0:
returnFalse
root = int(math.sqrt(n))
return root * root == n
# 测试
for x in [4, 9, 15, 16, 25, 26]:
print(f"{x} -> {is_perfect_square(x)}")
输出就是:
4 -> True
9 -> True
15 -> False
16 -> True
25 -> True
26 -> False
这个判断逻辑很简单:
先开平方取整数部分 再平方回去,看跟原数一样不
有些时候,我们会遇到不能用浮点数的情况(比如特别大的整数,精度可能丢),那可以用整数的方法,比如 二分查找 来找平方根:
defis_perfect_square_binary(n):
if n < 0:
returnFalse
left, right = 0, n
while left <= right:
mid = (left + right) // 2
sq = mid * mid
if sq == n:
returnTrue
elif sq < n:
left = mid + 1
else:
right = mid - 1
returnFalse
这个方法的好处是:即使是超大的数(比如 64 位整数)也不会出错。
顺便说说完全平方数的生成
你要是想生成前几个完全平方数,那就太简单了:
defgenerate_perfect_squares(limit):
return [i*i for i in range(1, limit+1)]
print(generate_perfect_squares(10))
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
是不是很直观?
完全平方数的本质,就是“一个整数的平方”。 判断方法可以用:
简单的 开平方再平方回去 更稳妥的 二分查找
日常工作里,像数据分析、图像处理、甚至某些算法优化,都可能用到它。 以后再看到这个词,就不用被吓住了,心里默念:哦,就是正方形的那个数嘛。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领