神仙公司(天津)
继续,神仙公司系列。
今天安排上一期 北京 中,评论区呼声最高的城市:天津。
天津市是在中国北方地区里,排名前几的港口城市和经济中心,也是这几年大学生首份工作考虑的热门城市之一。
今天我们来分享一下,坐标
-
诺和诺德:四点半下班,双休不加班,每周一天居家办公,办公环境优雅(北欧风),全额七险一金,15 天年假,20 天带薪病假,包餐,零食饮料下午茶,女性员工超过 50%; -
中国铁路设计集团:国企性质,不打卡,15 天年假,12 天带薪病假,薪资待遇高,全额六险二金,住房公积金中位数 8000+,月奖金相比公积金只多不少,免费健身房,年度体检; -
空中客车:国企性质,航空业巨头,早 7:30,晚 16:00,双休,入职 10 天年假,20 天带薪病假,待遇中上水平,正规六险一金,额外补充医疗保险,免费工作餐,免费班车接送,节日福利,每年普调; -
霍尼韦尔:外企性质,不打卡,体系完善,制度宽松,基本不加班,入职 12 天年假,15 天带薪病假,薪资待遇高,六险一金,员工储蓄计划(企业单方面给员工银行账号打钱),免费班车,免费食堂和下午茶,节日福利,年度体检; -
恩智浦 NXP:朝九晚六,弹性工作,不打卡,全额五险一金,额外补充商业保险,有免费班车,食堂,健身房,有租房补贴,长期股权激励计划, -
联想(总部):总部不怎么加班,联想云和联想业务加班较多(有加班费),不打卡,15 天年假,12 天带薪病假,顶级待遇,全额六险二金,节日福利,免费健身房,年度体检: -
渣打银行:朝九晚六,每周可申请三天居家办公,每周一天提前下班(下午 4 点),15 天年假,15 天带薪病假,有食堂(免费吃喝),有班车,晚上打车报销,全额五险一金,额外补充医疗保险,工作简单,薪资待遇中上,每年普调; -
农行天研(中国农业银行天津研发中心):早 8:30 晚 5:30,午休两小时,双休,薪资待遇高,全额九险二金; -
渤海银行:工作位置位于 CBD 办公区域,晚上 6 点办公室基本没人,双休,偶尔的加班都有加班费,薪资待遇高,全额九险二金;
以上就是坐标「天津」的各行业神仙公司。
关于「天津」以及「天津神仙公司」,你有什么想分享的呢,欢迎评论区留言。
...
回归主题。
周末,快乐小算法做起来。
题目描述
平台:LeetCode
题号:1748
给你一个整数数组 nums
,数组中唯一元素是那些只出现「恰好一次」的元素。
请你返回 nums
中唯一元素的和。
示例 1:
输入:nums = [1,2,3,2]
输出:4
解释:唯一元素为 [1,3] ,和为 4 。
示例 2:
输入:nums = [1,1,1,1,1]
输出:0
解释:没有唯一元素,和为 0 。
示例 3 :
输入:nums = [1,2,3,4,5]
输出:15
解释:唯一元素为 [1,2,3,4,5] ,和为 15 。
提示:
排序 + 双指针
根据题意,其中一个做法是先对 nums
进行排序,使用双指针找到值相同的连续段 ,若连续段长度为 ,则将该值累加到答案。
Java 代码:
class Solution {
public int sumOfUnique(int[] nums) {
Arrays.sort(nums);
int n = nums.length, ans = 0;
for (int i = 0; i < n; ) {
int j = i;
while (j < n && nums[j] == nums[i]) j++;
if (j - i == 1) ans += nums[i];
i = j;
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int sumOfUnique(vector<int>& nums) {
sort(nums.begin(), nums.end());
int n = nums.size(), ans = 0;
for (int i = 0; i < n; ) {
int j = i;
while (j < n && nums[j] == nums[i]) j++;
if (j - i == 1) ans += nums[i];
i = j;
}
return ans;
}
};
Python 代码:
class Solution:
def sumOfUnique(self, nums):
# count = Counter(nums)
# return sum(x for x, c in count.items() if c == 1)
nums.sort()
n, ans = len(nums), 0
for i in range(n):
if (i == 0 or nums[i] != nums[i - 1]) and (i == n - 1 or nums[i] != nums[i + 1]):
ans += nums[i]
return ans
TypeScript 代码:
function sumOfUnique(nums: number[]): number {
nums.sort((a, b) => a - b);
let n: number = nums.length, ans: number = 0;
for (let i: number = 0; i < n; ) {
let j: number = i;
while (j < n && nums[j] === nums[i]) j++;
if (j - i === 1) ans += nums[i];
i = j;
}
return ans;
};
-
时间复杂度:排序复杂度为 ;统计答案复杂度为 。整体复杂度为 -
空间复杂度:
哈希表
另外容易想到使用「哈希表」统计某个数的出现次数,又根据 的范围为 ,可直接使用数组充当哈希表。
Java 代码:
class Solution {
int[] cnt = new int[110];
public int sumOfUnique(int[] nums) {
for (int i : nums) cnt[i]++;
int ans = 0;
for (int i = 1; i <= 100; i++) {
if (cnt[i] == 1) ans += i;
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int sumOfUnique(vector<int>& nums) {
unordered_map<int, int> cnt;
for (int i : nums) cnt[i]++;
int ans = 0;
for (auto& pair : cnt) {
if (pair.second == 1) ans += pair.first;
}
return ans;
}
};
Python 代码:
class Solution:
def sumOfUnique(self, nums):
cnt = [0] * 101
for i in nums: cnt[i] += 1
ans = 0
for i in range(1, 101):
if cnt[i] == 1: ans += i
return ans
TypeScript 代码:
function sumOfUnique(nums: number[]): number {
const cnt: number[] = new Array(110).fill(0);
for (const i of nums) cnt[i]++;
let ans: number = 0;
for (let i: number = 1; i <= 100; i++) {
if (cnt[i] == 1) ans += i;
}
return ans;
};
-
时间复杂度:令 为 的值域大小,本题固定为 。整体复杂度为 -
空间复杂度:
最后
巨划算的 LeetCode 会员优惠通道目前仍可用 ~
使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。
我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉