Seven's blog

你不会找到路,除非你敢于迷路

0%

ARTS-16

Algorithm

1299. 将每个元素替换为右侧最大元素

解法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public int[] replaceElements(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int maxRight = arr[i + 1];
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] > maxRight) {
maxRight = arr[j];
}
}
arr[i] = maxRight;
}

arr[arr.length - 1] = -1;
return arr;
}
}

执行用时:137ms,内存消耗:39.6MB。

解法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public int[] replaceElements(int[] arr) {
int length = arr.length;
if (length < 1) {
return arr;
}

int[] result = new int[length];
int maxRight = -1;
for (int i = length - 1; i >= 0; i--) {
result[i] = maxRight;
if (arr[i] > maxRight) {
maxRight = arr[i];
}
}

return result;
}
}

执行用时:1ms,内存消耗:39.1MB。

Review

5 Exceptional Morning Routines That You Probably Didn’t Consider Yet

你的早上决定了你接下来一天的生活。

作者认为早上的生活习惯对人接下来的一天至关重要,并且介绍了自认为能提高自身状态的 5 个实践:

  1. 补水;

  2. 散步;

  3. 清洁舌头;

    我们经常会刷牙,但是很容易忽略舌头清洁。

  4. 干刷皮肤(每周一两次);

    貌似是为了清理死皮?作者建议在晨浴前进行此项活动。

  5. 聆听双耳节拍;

    可以帮助冥想,减少焦虑。

Tip

怎么给字符串字段加索引?

  • 直接在字符串字段上面创建索引,可能会比较占用空间;

  • 使用前缀索引,定义字符串的一部分作为作为索引;

    • 要谨慎选择长度,技能节省空间,又不会额外增加太多的查询成本;
    • 使用前缀索引的话就会丧失覆盖索引的优势,需要谨慎选择;
  • 把字符串倒序存储,然后添加前缀索引,用于绕过正序字符串本身前缀区分度不够的问题(比如身份证号);

  • 额外创建 hash 字段并对其添加索引,查询性能稳定,有额外的存储和计算消耗,并且不支持范围查询;

Share

20 小时定律

技能学习.png

微信公众号
扫码关注, 一起进步!