浦发银行年终奖?
最近因为年终奖上热搜的公司,大多数都是良心公司。
不少网友表示 🍋 不过来了,赶紧来个类似 广联达 那样的公司,对冲一下。
这不来了吗?
昨晚,某职场 App 上,一标题名为「传浦发银行不发年终奖,发一封家书」冲上热搜。
话题一出,迅速引发网友热议。
毕竟浦发银行可是老牌的全国性股份制商业银行,在业内有着不错的名气和风评。
不少奋斗在吃瓜一线的网友纷纷发帖求证:
但迎来的,却是"花式辟谣":
不少带着浦发银行员工职场认证标识的小伙伴表示,这家书"抵"的可不只是 1W,而是 5~10W 😂。
真的是让人又心疼又好笑。
甚至还有仅「浦发银行同事圈」可见的帖子被曝光:
真诗,真家书。
有才,实在是太有才了。
把浦发人逼急了,真的是要动手写诗的。
幽默归幽默,对于身处其中的小伙伴来说,可是实打实的钱。
我觉得现如今这个"内卷"被歌颂的时代,越来越多企业把「应当」当作了「恩赐」,说好的年终奖,那就是员工收入的一部分,说取消就取消,毫无契约精神。
对于这种企业,我觉得这位网友的做法就很正确:
在围城里的,争取早日逃脱,同时能救一个是一个。
...
回归主线。
做一道和银行相关的算法题(不是浦发银行的,毕竟不建议去
这是一道某国有行的面试题,题面有所不同,但解法和代码完全一致。
最近临近春节,会尽量给大家安排少动脑的题目。
题目描述
平台:LeetCode
题号:2520
给你一个整数 num
,返回 num
中能整除 num
的数位的数目。
如果满足 nums % val == 0
,则认为整数 val
可以整除 nums
。
示例 1:
ini
输入:num = 7
输出:1
解释:7 被自己整除,因此答案是 1 。
示例 2:
ini
输入:num = 121
输出:2
解释:121 可以被 1 整除,但无法被 2 整除。由于 1 出现两次,所以返回 2 。
示例 3:
ini
输入:num = 1248
输出:4
解释:1248 可以被它每一位上的数字整除,因此答案是 4 。
提示:
- <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 < = n u m < = 1 0 9 1 <= num <= 10^9 </math>1<=num<=109
num
的数位中不含0
模拟
根据题意进行模拟即可。
假设起始值为 num
,符合要求的数位个数为 ans
,按照「从低到高」的方式循环处理 num
中的每个数位:
-
每次仅对当前数值
num
的最低位进行判断(当前数值num
会被不断更新),通过「模 <math xmlns="http://www.w3.org/1998/Math/MathML"> 10 10 </math>10」的方式来「截取当前数值的最低位」 ,并根据要求进行判断,若当前数位符合要求,对ans
进行加一; -
判断完当前数组
num
的最低位后,通过「与 <math xmlns="http://www.w3.org/1998/Math/MathML"> 10 10 </math>10 地板除」的方式来「摒弃当前数值的最低位」 ,并以此更新num
; -
循环步骤
1
和步骤2
,直到num
所有数位均被处理完,即num = 0
。
用题面的示例 3 来举个 🌰,给定 num = 1248
,完整处理过程如下:
-
当前数
num = 1248
,通过mod 10
取最低位8
,该数值满足要求,ans = 1
;通过
// 10
摒弃已处理的最低位,得到num = 124
-
当前数
num = 124
,通过mod 10
取最低位4
,该数值满足要求,ans = 2
;通过
// 10
摒弃已处理的最低位,得到num = 12
-
当前数
num = 12
,通过mod 10
取最低位2
,该数值满足要求,ans = 3
;通过
// 10
摒弃已处理的最低位,得到num = 1
-
当前数
num = 1
,通过mod 10
取最低位1
,该数值满足要求,ans = 4
;通过
// 10
摒弃已处理的最低位,得到num = 0
,循环结束
Java 代码:
Java
class Solution {
public int countDigits(int num) {
int n = num, ans = 0;
while (num != 0) {
ans += n % (num % 10) == 0 ? 1 : 0;
num /= 10;
}
return ans;
}
}
Python 代码:
Python
class Solution:
def countDigits(self, num: int) -> int:
return sum(num % int(i) == 0 for i in str(num))
# n, ans = num, 0
# while num != 0:
# ans += n % (num % 10) == 0
# num //= 10
# return ans
C++ 代码:
C++
class Solution {
public:
int countDigits(int num) {
int n = num, ans = 0;
while (num != 0) {
ans += n % (num % 10) == 0;
num /= 10;
}
return ans;
}
};
TypeScript 代码:
TypeScript
function countDigits(num: number): number {
let n = num, ans = 0;
while (num !== 0) {
ans += n % (num % 10) == 0 ? 1 : 0;
num = Math.floor(num / 10);
}
return ans;
};
Kotlin 代码:
Kotlin
class Solution {
fun countDigits(num: Int): Int {
return num.toString().count { x -> num % (x - '0') == 0 }
}
}
- 时间复杂度: <math xmlns="http://www.w3.org/1998/Math/MathML"> O ( log n ) O(\log{n}) </math>O(logn)
- 空间复杂度: <math xmlns="http://www.w3.org/1998/Math/MathML"> O ( 1 ) O(1) </math>O(1)
我是宫水三叶,每天都会分享算法题解,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉