小黑代码
class Solution:
def threeSum(self, nums: List[int]) -> List[List[int]]:
# 数组长度
n = len(nums)
if n < 3:
return []
nums.sort()
# 结果数组
results = []
for i in range(n-2):
# 判断是否重复,跳过重复
if i != 0 and nums[i-1] == nums[i]:
continue
if nums[i] + nums[n-1] + nums[n-2] < 0:
continue
if nums[i] + nums[i+1] + nums[i+2] > 0:
break
# 定义双指针
head = i + 1
tail = n - 1
while head < tail:
if nums[i] + nums[head] + nums[tail] < 0:
head += 1
elif nums[i] + nums[head] + nums[tail] > 0:
tail -= 1
else:
results.append([nums[i], nums[head], nums[tail]])
while head < tail and nums[head] == nums[head+1]:
head += 1
head += 1
return results
算法题目第一章概览部分全部刷完,从去年找工作开始到现在(一共250道题左右),一路波折,让我把这个习惯坚持下去吧,在锻炼思维的同时也是给生活找个乐子,让我发现生活的足迹
数据库练习
626. 换座位
case法
# Write your MySQL query statement below
SELECT
(CASE
WHEN id % 2 = 0 THEN id - 1
WHEN id % 2 != 0 AND id != A.count THEN id + 1
ELSE id
END) AS 'id',
student
FROM
Seat,
(SELECT
COUNT(id) AS 'count'
FROM
Seat) AS A
ORDER BY id ASC
位运算法
# Write your MySQL query statement below
SELECT
s1.id, COALESCE(s2.student, s1.student) AS 'student'
FROM
Seat s1 LEFT JOIN Seat s2 ON s1.id = (s2.id + 1) ^ 1 - 1
Pandas练习
626. 换座位
import pandas as pd
def exchange_seats(seat: pd.DataFrame) -> pd.DataFrame:
size = len(seat)
def change_id(id_):
# 奇数的情况
if id_ % 2:
if id_ != size:
return id_ + 1
return id_
# 偶数的情况
return id_ - 1
seat['id'] = seat['id'].apply(change_id)
seat.sort_values(by='id', inplace=True)
return seat
小黑生活
午餐干饭,汉堡没吃了,被食堂大妈说了一顿,下次少拿点儿~
想喝喜茶啦,来一杯
开始练拔河了
收到了保定半程的领物通知
晚餐宇飞牛肉面
练完琴去上健身课,还有五次课,干!!
上完课小跑一下
早餐鸡蛋灌饼加里脊
去买瑞幸的路上,看到了一只小猫
感谢同事姐姐送我的玫瑰饼
买杯酪香拿铁
广州马拉松没中签,遗憾
参加个联谊活动玩玩
午餐干饭,今天有涮羊肉啦
再来碗羊杂汤,又吃多了
吃着咖啡,喝着巧克力的读书会
晚餐干饭,有些难吃
晚上奥森仰山跑,林子里灯打开了,好温馨啊
跑步数据跑出来三角函数之美
买杯酷儿饮料地铁上喝,看强风吹拂
出发去运动会开幕式彩排
早餐干饭
准备走方阵
等待的过程中打一局王者,出现了bug
到达奥体中心操场
我的头发好飘逸啊
感谢同事小姐姐送我们回单位,路过国家市场监督管理总局
午餐干饭,羊杂汤打扫锅底