Algorithm
lc1748_唯一元素的和
思路: 直接hash表(unordered_map)来记录出现次数,然后最后遍历hash表得出结果即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class Solution {
unordered_map<int, int> nums_count;
public:
int sumOfUnique(vector<int>& nums) {
int ans = 0;
for (auto num : nums) {
nums_count[num]++;
}
for (auto it : nums_count) {
if (it.second == 1) {
ans += it.first;
}
}
return ans;
}
};
|
AC之后看了答案,发现还有一个不用二次遍历的方法
链接:https://leetcode-cn.com/problems/sum-of-unique-elements/solution/wei-yi-yuan-su-de-he-by-leetcode-solutio-tueh/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Solution {
public:
int sumOfUnique(vector<int> &nums) {
int ans = 0;
unordered_map<int, int> state;
for (int num : nums) {
if (state[num] == 0) {
ans += num;
state[num] = 1;
} else if (state[num] == 1) {
ans -= num;
state[num] = 2;
}
}
return ans;
}
};
|
Review
【TED演讲】如何控制你的空闲时间
人们经常说:我没有时间,所以我没有做这件事情。
实际上是因为我们不想做这些事情,所以我们没有时间。
这是目的论,而不是因果论,因为因果论更接近于事后诸葛亮。
这个视频主要讲的是,是要把自己想做的事情列好计划,并且严格执行,防止自己后面没有执行。
严格执行!!!今年虎年加油!!!
Tips
在Windows下同步linux环境和编写linux代码步骤
Share-vscode通过samba共享代码到本地开发
vscode上使用remote-ssh,并且安装很多远程插件的时候还是太占用服务器资源了
然后决定在宿主机上建立了一个samba共享目录,然后用samba共享,在本地开SI或者VScode编辑代码
缺点: 行吧…这样vscode对于系统调用的跳转应该不好用了
优点: …但是可以用上SI的灵活看到代码,也挺不错
缺点解决: https://blog.csdn.net/weixin_44624419/article/details/107928770
参考上面链接,然后改进成软链接,即可
原c_cpp_properties.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/linux",
"/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include",
"/usr/local/include",
"/usr/include"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
|
创建软链接
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
|
⚡ 01/26|14:21:11 ~ mkdir linux_include
⚡ 01/26|14:21:27 ~ cd linux_include/
⚡ 01/26|14:21:29 linux_include ln -s /usr/include/linux/ linux
⚡ 01/26|14:22:15 linux_include ls
linux
⚡ 01/26|14:22:16 linux_include ll -a
总用量 4.0K
drwxr-xr-x 2 root root 19 1月 26 14:22 .
dr-xr-x--- 13 root root 4.0K 1月 26 14:22 ..
lrwxrwxrwx 1 root root 19 1月 26 14:22 linux -> /usr/include/linux/
⚡ 01/26|14:22:19 linux_include ln -s /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/ gcc4.8.5_include
⚡ 01/26|14:22:46 linux_include ln -s /usr/local/include/ usr_local_include
⚡ 01/26|14:23:07 linux_include ln -s /usr/include/ usr_include
⚡ 01/26|14:23:20 linux_include ll
总用量 0
lrwxrwxrwx 1 root root 47 1月 26 14:22 gcc4.8.5_include -> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/
lrwxrwxrwx 1 root root 19 1月 26 14:22 linux -> /usr/include/linux/
lrwxrwxrwx 1 root root 13 1月 26 14:23 usr_include -> /usr/include/
lrwxrwxrwx 1 root root 19 1月 26 14:23 usr_local_include -> /usr/local/include/
⚡ 01/26|14:23:20 linux_include ln -s /usr/bin/gcc linux_gcc
⚡ 01/26|14:24:11 linux_include ll
总用量 0
lrwxrwxrwx 1 root root 47 1月 26 14:22 gcc4.8.5_include -> /usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/
lrwxrwxrwx 1 root root 19 1月 26 14:22 linux -> /usr/include/linux/
lrwxrwxrwx 1 root root 12 1月 26 14:24 linux_gcc -> /usr/bin/gcc
lrwxrwxrwx 1 root root 13 1月 26 14:23 usr_include -> /usr/include/
lrwxrwxrwx 1 root root 19 1月 26 14:23 usr_local_include -> /usr/local/include/
|
修改c_cpp_properties.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"Z:\\linux_include\\linux",
"Z:\\linux_include\\gcc4.8.5_include",
"Z:\\linux_include\\usr_local_include",
"Z:\\linux_include\\usr_include"
],
"defines": [],
"compilerPath": "Z:\\linux_include\\linux_gcc(上网学,配置成windows安装的gcc)",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
|
无法使用 compilerPath 解析配置:“Z:\linux_include\linux_gcc”
windows无法使用Unix的运行程序,所以还是得自己在本地装一个gcc(网上有很多教程),但是由于我不在本地编译
现在已经能代码跳转系统库了,所以不折腾了
软链接无法访问
尴尬发现samba共享目录的软链接无法访问…….
注: 可以用man smb.conf
去查看配置的含义
然后设置如下
编辑/etc/samba/smb.conf
1
2
3
4
5
6
|
[global]
unix extensions = no
[share]
follow symlinks = yes
wide links = yes
|
注意:如果您使用的是samba的较新版本,则可以使用以下命令:
1
2
3
4
5
6
|
[global]
allow insecure wide links = yes
[share]
follow symlinks = yes
wide links = yes
|
pkill -1 smbd
如果你是docker,你用docker宿主机启动的samba共享,然后在docker内部创建的软链接,只能访问到宿主机对应的位置…而不是docker内的位置
所以还是要在docker内启动一个samba
自己装samba
1
2
3
4
5
6
7
8
|
yum install samba
⚡ 01/26|15:11:04 linux_include useradd root
⚡ 01/26|15:11:58 linux_include smbpasswd -a root
New SMB password:
Retype new SMB password:
Added user root.
systemctl start smb
|
/etc/samba/smb.conf
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
|
## See smb.conf.example for a more detailed config file or
## read the smb.conf manpage.
## Run 'testparm' to verify the config is correct after
## you modified it.
[global]
workgroup = SAMBA
security = user
log file = /var/log/smbd.log
max log size = 0
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
unix extensions = yes
follow symlinks = yes
hosts allow = *
smb ports = 139
## host msdfs = yes
allow insecure wide links = yes
[root]
comment = workspace
path = /root
vfs objects = aio_pthread
aio_pthread:aio open = yes
writeable = yes
map archive = no
follow symlinks = yes
wide links = yes
valid users = root
write list = root
|