YoungNan


  • 首页

  • 关于

  • 分类

  • 归档

Sort

发表于 2020-03-11 | 分类于 LeetCode |

快排最重要的就是 partition 函数,i 记录第一个不小于 pivot 的位置:

  1. 取数组中最后一个数字为 pivot,同时用 i 记录第一个位置;
  2. 遍历数组,比较每个数和 pivot;
  3. 数组内的值小于 pivot 时,进入循环;
  4. 保证 i 是第一个不小于 pivot 的位置;
  5. i == j, i ++
  6. i != j, 交换数组中 i 和 j,且 i++
阅读全文 »

Tree

发表于 2020-03-11 | 分类于 LeetCode |
1
2
3
4
5
6
7
8
9
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;

public TreeNode(int val) {
this.val = val;
}
}
阅读全文 »

记录 virtualenv 的使用

发表于 2020-03-11 | 分类于 Linux |

记录 virtualenv 的使用

创建 virtual env 环境,这里上来就报错:

1
OSError: Command /root/.local/share/letsencrypt/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2

查到是由于多个版本的 virtualenv 冲突了,解决:

1
2
3
$ python -V
$ pip -V
$ dpkg -l|grep virtualenv

然后使用

1
$ sudo apt-get purge python-virtualenv python3-virtualenv virtualenv

删除,重新安装:

1
$ pip install virtualenv

这里有可能又报错 permission denied ,查了好多地方,说是要加 sudo ,但其实不是这么解决的,正确的安装方法是:

1
$ pip install virtualenv --user

即为当前的用户安装 pip ,原来自己以前用 pip 的姿势都是错的 o(╥﹏╥)o,使用 pip 千万不要加 sudo 啊,真是学习不规范,使用两行泪〒▽〒

开启虚拟环境:

1
2
3
4
5
6
7
8
// 查找解释器位置
$ find / -name python3
// 指定 python3 创建干净环境
$ virtualenv --no-site-packages -p /usr/bin/python3 venv
$ source venv/bin/activate
// 查看版本
$ pip -V
$ python -V

然后就可以愉快的使用了。。。

排序算法的总结

发表于 2020-03-11 | 分类于 Algorithm |

总结一下排序的算法

选择排序

思路: 找出数组中最大的元素和下标,将下标对应的元素从旧数组中取出依次存入新的数组中

复杂度 $O(n^2)$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

def findMaxNum(arr):
maxNum = arr[0]
maxNumIndex = 0
for i in range(1, len(arr)):
if arr[i] > maxNum:
maxNum = arr[i]
maxNumIndex = i
return maxNumIndex

def sort(arr):
newArr = []
for _ in range(len(arr)):
maxIndex = findMaxNum(arr)
newArr.append(arr.pop(maxIndex))
return newArr

print(sort([5,3,6,2,10]))
阅读全文 »

Ubuntu 1604 配置 OpenAI Gym Universe

发表于 2020-03-11 | 分类于 Linux |

配个环境真是不容易,困难重重,到处是坑。。。

Anaconda 的安装

更新源以及安装依赖:

1
2
$ sudo apt update
$ sudo apt install golang python3-dev python-dev libcupti-dev libjpeg-turbo8-dev make tmux htop chromium-browser git cmake zlib1g-dev libjpeg-dev xvfb libav-tools xorg-dev python-opengl libboost-all-dev libsdl2-dev swig

下载 Anaconda:https://www.anaconda.com/download/ ,安装使用

1
$ bash AnacondaXXXXXXX-86_64.sh

出现许可,键入 q 跳过,输入 yes 表示同意,稍后是一些安装位置信息,回车即可。

阅读全文 »

Tree

发表于 2020-03-11 | 分类于 LeetCode |

汇总树的题目

1
2
3
4
5
6
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
阅读全文 »

Stack

发表于 2020-03-11 | 分类于 LeetCode |

汇总栈的题目

1
2
3
4
# Definition for a binary tree node.
class TreeNode:
def __init__(self, x):
self.stack = []
阅读全文 »

Ros 下的三轮全向小车

发表于 2020-03-11 | 分类于 Robot |

之前写的 这篇文章 分析了三轮全向小车的运动,今天把尝试它部署到 Ros 上。

基本原理

参考系的定义需要根据 Ros by Example chapter 7 做一些修改:

  • 定义三轮车的三个轮子分别是 A、B、C, 速度分别是a、b、c;
  • 定义半径 Radius 是中点到轮子的距离;
  • 定义 a,b 为前轮,c 为后轮。

阅读全文 »

Ros Kinetic 下配置对应 python3 的 cv_bridge

发表于 2020-03-11 | 分类于 Linux |

0. 前言

DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won’t be maintained after that date.

python 2.7 即将在今年停止支持,但很多基于 Ros Kinetic 的包都是基于 python 2.7 的,在 Ubuntu 不能升级的情况下也不能安装更高版本的 Ros,由于最近用到的一些包是在 python 3 下的, 不得不考虑一下在 Ros Kinetic 下构建包,当然前后花费了好长时间,困难重重,几度奔溃。

阅读全文 »

Output the last Kth Node

发表于 2020-03-11 | 分类于 LeetCode |

这可能是一道剑指offer的题目(不是leetcode上的),今天忘了在哪看的了

思路: 找两只小狗,第一只先跑到 k - 1 处,然后让它们同时跑,第一只跑完后返回第二只的位置

阅读全文 »
123
Pumpkin

Pumpkin

24 日志
7 分类
7 标签
© 2020 Pumpkin
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4