leetcode-838
纯模拟,我的写法是加了一个左侧指针,官方解答是双指针或者BFS
1234567891011121314151617181920212223242526272829303132class Solution:  def pushDominoes(self, dominoes: str) -> str:    length = len(dominoes)    ans = ''    i = 0    p = -1    c = '.'    while i < length:      if dominoes[i] == 'L':        if c == 'R':          if (i - p + 1) % 2:            ans += 'R' * ((i - p - 2) // 2) + '.' + 'L' * ((i - p) // 2)          else:            ans +=  ...
leetcode-1345
1VLXNRGJP2$DQ6P.png)
BFS即可,每个节点的相邻节点分别是,左边一个,右边一个,以及相同值的节点:
123456789101112131415161718192021222324252627282930313233343536class Solution:  def minJumps(self, arr: List[int]) -> int:    from queue import Queue    length = len(arr)    table = dict()    for idx, x in enumerate(arr):      if x not in table:        table[x] = []      table[x].append(idx)    vis = [False for _ in range(length)]    inq = [False for _ in range(length)]    q = Queue()    q.put((0, 0))    inq[0] = True    g = length - ...
leetcode-219
简单的滑动窗口+哈希表,代码写的比较丑
1234567891011121314151617181920class Solution:  def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:    k += 1    table = set()    f = False    g = min(k, len(nums))    for i in range(g):      if nums[i] in table:        f = True        break      table.add(nums[i])    if f:      return True    for i in range(g, len(nums)):      table.remove(nums[i - k])      if nums[i] in table:        f = True        break      table.add(nums[i])    return f
leetcode-382
最简单的方式:先用List存储,然后用Random包随机。
12345678910111213141516171819202122# Definition for singly-linked list.# class ListNode:#     def __init__(self, val=0, next=None):#         self.val = val#         self.next = nextclass Solution:  def __init__(self, head: Optional[ListNode]):    self.arr = []    while head is not None:      self.arr.append(head.val)      head = head.next    self.length = len(self.arr)  def getRandom(self) -> int:    import random    x = random.randint(0, self.length -1)    retu ...
研究生入学第一天
隔了很长时间写一篇博客,也许叫做随手写的心情实录比较好。
fdu入学第一天,果然研究生和本科还是不一样的,主要是大家都有自己的圈子,我一个人在这个就显得比较孤单了,emm,就是这么回事,可能以后吃饭上课就是一个人的路线了,也不是强求一定要有人陪着,但是还是会觉得有点孤单,毕竟大多数人还是比较喜欢有能够交心的朋友然后嘻嘻哈哈的吧,而不是仅限于点头之交。
明天体检&组会,仅此而已。
STL阅读笔记-迭代器
概要STL的中心思想在于把数据(容器)和算法分离开,彼此之间没有关系,独立设计,都不必关心彼此的实现细节,但是那我们就需要用什么东西去使这两者能够结合起来,这就是迭代器的意义。
以 C++14 的 STL 源码为例,其线性查找函数如下所示
123456789101112131415161718192021222324/// This is an overload used by find algos for the Input Iterator case.template<typename _InputIterator, typename _Predicate>  inline _InputIterator  __find_if(_InputIterator __first, _InputIterator __last,      _Predicate __pred, input_iterator_tag)  {    while (__first != __last && !__pred(__first)) ++__first;    retur ...
STL阅读笔记-Traits
最近一个月读了读《STL源码剖析》,有点散乱,打算把一些比较重要的东西记录下来。
空间适配器那部分有点读的不是很明白,也不是很仔细,主要是我个人对于这些空间上的管理不是很感兴趣 ¿,因此只是略略的读了一遍。
而迭代器这部分就比较有意思了,因此我决定从迭代器这部分开始比较仔细的做笔记。
本文章主要讲一讲 Traits 编程技法。
在这之前需要了解一下C++的一些复杂特性,以下主要说模板特化与偏特化。
模板如下是一个基本的模板类写法,使用了仿函数(重载了括号运算符的类。简而言之,可以把一个类对象当做一个函数似的去调用)
1234567template <class T>class Equal() {  bool operator() (T& x, T& y) {    return x == y;  }}
但是这个模板真的能够通用吗,答案是否定的,比如浮点数之间的比较,众所周知浮点数的存储是有误差的,因此两个浮点数的大小比较不能简单的用 == 的方式,而应该定义为相差的绝对值不超过eps(eps需要多少由你自己的需求决定) ...
时隔一年多
开始打理这个一年多没搞过的博客
公网连接阿里云ecs上的mongodb
这几天因为要把爬虫部署在云服务器上,所以需要远程连接阿里云ecs的mongodb,在网上找了一大堆资料没一点用,渐觉无望,最后终于找到一篇博文有效的了!!!激动地老泪纵横(因为之前已经花了一晚上配置了)。
此为博客连接,建议进去看,原博主比我讲的清楚的多。
本人配置:centos7(其他linux也没有太大区别),mongodb4.2
不会使用vim的同学稍微百度一下
首先要修改数据库配置
1vi /etc/mongod.conf
   然后把 $bindIp$ 这一行注释掉, 并且在下面新加一行
   1bindIpAll: true
修改防火墙配置,放行 $mongodb$ 服务的端口
若防火墙未打开,要先打开防火墙,以下为有关防火墙的一整套命令
12345systemctl status firewalldsystemctl stop firewalldsystemctl start firewalld # 用这个就行systemctl disable firewalldsystemctl enable firewalld
1iptables -A INPUT -p t ...
Chrome页面 喔唷崩溃了 问题
总算能够闲下来好好写一篇博客了,前段时间忙于课程设计与期末考试。
最近碰到一个很坑爹的问题,就是Chrome在你没有更新的时候总是会不厌其烦的提醒你去更新,搞得人很烦,于是我就点了安装更新,以免它再提示,结果……更新完之后打开任何网页都是提示“喔唷崩溃了”,给我整懵了,据说这是Google更新出现的问题。
网上找到了一些解决方案,有一类是修改用快捷方式打开浏览器的方式,打开快捷方式的属性后,在目标后面添加—no-sandbox后缀,但这种方式打开Chrome会有安全提示,不美观而且麻烦,另一种是在后面加 —disable-features=RendererCodeIntegrity后缀,没有了安全提示,结果我一度以为解决了……,但你会发现,用快捷方式打开浏览器没有问题,但用别的方式,例如点开QQ消息里的链接,还是会显示“喔唷崩溃了”……
最后找到了一个完美的解决方案,点此进入,若没有博客里说的那个路径,需要自己手动创建(本人就是)。


