lc1366_通过投票对团队排名 人类如何抵达其他星球?【TED演讲】 别把当下当成本 分享香香矿RateX
Algorithm
lc1366_通过投票对团队排名
思路:
直接对n个位置的字符数进行计数,然后再遍历n个位置的计数最大者,只有超过才更新,则就能票数相同时按字母序。
这里一开始想简单了,并没有考虑清楚并列的依赖关系。
因为只有26个队伍,可以考虑26进制,每次乘以26. 最大是26^26,不太行。
那只能模拟了。找到最大票数,如果相同,就反复比较后面的票数。
并且后面已经排名的字母需要跳过。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
impl Solution {
pub fn rank_teams(votes: Vec<String>) -> String {
// votes.len() 是投票人数,但我们需要的是每个位置的字符数,应该用 votes[0].len()
let n = votes[0].len();
// dp[i][j] 表示第i个位置字符j(A-Z)的得票数
let mut dp = vec![vec![0; 26]; n];
for vote in votes {
for (i, c) in vote.chars().enumerate() {
dp[i][c as usize - 'A' as usize] += 1;
}
}
let mut ans = String::with_capacity(n);
let mut used = vec![false; 26];
for _ in 0..n {
let mut max_char = 'A';
let mut found = false;
// 遍历所有未使用的字母
for j in 0..26 {
if used[j] {
continue;
}
if !found {
// 找到第一个未使用的字母,直接continue是为了有2个字母比较, 或者最后一个字母直接用
max_char = (j as u8 + b'A') as char;
found = true;
continue;
}
// 比较当前字母j和当前最大字母的所有位置得票
let mut is_larger = false;
let mut is_equal = true;
for pos in 0..n {
let curr = dp[pos][j];
let max = dp[pos][max_char as usize - 'A' as usize];
if curr > max {
is_larger = true;
is_equal = false;
break;
}
if curr < max {
is_equal = false;
break;
}
}
if is_larger || (is_equal && j < (max_char as usize - 'A' as usize)) {
max_char = (j as u8 + b'A') as char;
}
}
used[max_char as usize - 'A' as usize] = true;
ans.push(max_char);
}
ans
}
}
|
题解直接先字母,再记录各位置的票数,然后排序。就不用考虑字符用过没的问题了,这种模拟的方式更好,学习。
不过提交运行起来,好像平台显示第一种方法更快,可能数据集没卡我的方法。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
use std::collections::HashMap;
impl Solution {
pub fn rank_teams(votes: Vec<String>) -> String {
let n = votes.len();
// 初始化哈希映射
let mut ranking: HashMap<char, Vec<i32>> = HashMap::new();
for vid in votes[0].chars() {
ranking.entry(vid).or_insert(vec![0; votes[0].len()]);
}
// 遍历统计
for vote in votes {
for (i, c) in vote.chars().enumerate() {
if let Some(rank) = ranking.get_mut(&c) {
rank[i] += 1;
}
}
}
// 取出所有的键值对
let mut result: Vec<(char, Vec<i32>)> = ranking.into_iter().collect();
// 排序
result.sort_by(|a, b| {
for i in 0..a.1.len() {
if a.1[i] != b.1[i] {
return b.1[i].cmp(&a.1[i]);
}
}
a.0.cmp(&b.0)
});
// 构建结果字符串
let mut ans = String::new();
for (vid, _) in result {
ans.push(vid);
}
ans
}
}
// 链接:https://leetcode.cn/problems/rank-teams-by-votes/solutions/123922/tong-guo-tou-piao-dui-tuan-dui-pai-ming-by-leetcod/
|
Review
人类如何抵达其他星球?【TED演讲】
通过激光反射推进技术,有可能实现离开太阳系。To the space!
Tip-别把当下当成本
虽然新奇的体验能扩展人生的体验,这没有错,但是如果把这件事做到极端,就会把当下当成未来的成本,然后会讨厌当下,这不好。
所以最终还得是为而不争的斯多葛主义哲学:
杨绛曾说:“我们曾如此渴望命运的波澜,到最后才发现,人生最曼妙的风景,竟是内心的淡定与从容。”
日复一日的生活是如此单调枯燥,避免不了一颗浮躁的心起起落落。可是再怎么折腾,到头来都要归于沉寂。倒不如安安静静地洗一个澡,看一朵花,吃一顿饭,读一本书,来的更快活。
当然这一切并非是快活的本身,而是源泉。它们之所以是快活的源泉,主要还是因为我们的内心没有挂碍。也就是杨绛所说的内心淡定与从容。
每当我可以气定神闲的感受身边的一切时,我都认为那是多么稀有的幸福时刻。在这种时刻,若不能用文字抒发一下,实在是太憋屈了。
正如周国平所说:最高级的幸福,是生命单纯,精神优秀。
我想,这正是那些内心淡定与从容面对生活的人们所期待与追求的样子。
我们也一样……
也就是说,做自己想做的事情,能有幸体验不同的风景当然更好,但是如果最终不幸无法体验,也莫向外求,感受当下的平和。
这是内心的心法,会让自己更平和,更愿意享受当下。不会把任何时候都当成未来的成本。
没有当下是成本的想法,也就不会对未来有过分期望,也就不会失望,从而就能更平和的面对当下。正向飞轮。
而且自从认清楚自己只要做自己想做的事情,就能认真做,就能做到超过80%的人,就不会饿死。所以就能自信面对所有的权威,领导,就能有勇气和自信直视任何人,因为没有向外求。
Share
分享香香矿RateX: https://x.com/wolfdan666666/status/1873276257108127963
1/🧵 今天给大伙介绍香香矿 @RateX_Dex
快来学习并锁定接近60%的APY+积分未来空投吧!
RateX是全球第一大杠杆收益率交易所,TVL已突破1415万美元(最近一月增7倍),持续快速增长中🔥
2/🧵 RateX主要功能:
- 最高10倍杠杆交易收益率
- 固定收益赚取
- 流动性挖矿
团队背景强大:
- 获Solana基金会和币安投资
- 核心成员来自顶级投行
- 丰富的资管和风控经验
3/🧵 什么是YBA (收益资产)?
- 能产生收益的资产(如mSOL、stETH)
- DeFi基石,让用户赚取被动收入
- 收益来自质押、借贷等
YBA分三类:
- Rebase型:如stETH
- 累积型:如mSOL
- 分发型:如GLP
4/🧵 RateX创新:收益率通证化框架
- ST(标准代币):1 ST = 1 YBA
- YT(收益代币):代表收益部分
- PT(本金代币):代表本金部分
核心公式:1 ST = 1 PT + 1 YT
5/🧵 交易原理:
- YT价格反映隐含收益率
- 交易YT = 押注未来收益率
- 通过YT/ST交易实现多空
6/🧵 三大玩法:
- 杠杆交易
- 做多:看涨收益率,借ST换YT
- 做空:看跌收益率,借YT换ST
- 最高10倍杠杆
7/🧵 2. 固定收益(Earn)
- 存入ST获得PT和YT
- 卖出YT锁定固定收益(持有-YT,做空套保)
收益计算:
- t0时以apy1存入,t1时以apy2提取
- 总收益 = apy1*(t1-t0) + YT价差
- 收益率下跌时YT价差获利,上涨时亏损
- 持有到期(YT到期为0)可锁定apy1收益率
8/🧵 3. 流动性挖矿
为YT/ST交易对提供流动性
- 存入YBA到RateX系统
- RateX生成ST,YT, 放一部分存起来,一部分放在AMM池里自动做市
收益来源:
9/🧵 参与建议:
- 🟢 新手:从Earn固定收益开始
- 🟡 进阶:LP提供流动性
- 🔴 专业:杠杆交易(注意风险)
Finish/🧵 欢迎关注 @Solana_zh, @RateX_Dex, @RateX_CN
一起来玩转收益率交易,收获财富🧧🚀