LeetCode 029 — Divide Two Integers

Divide Two Integershttps://leetcode.com/problems/divide-two-integers/ 题目要求不用乘法、除法和取模运算符,实现整型除法运算。 既然不能用乘法和除法运算符,那么基本思路就是用减法来代替。不过如果用每次循环减一次被除数这种方式,是肯定会超时的。所以要想办法加速运算。 Solutionclass Solution {public: int divide(int dividend, int divisor) { long long quotient = 0; int flag

LeetCode 011 — Container With Most Water

Container With Most Waterhttps://leetcode.com/problems/container-with-most-water/ 给定一个整型数组,表示坐标轴上的一组相应长度的垂直于 x 轴的线段,要求找出两条线跟 x 轴围起来的容器,能装最多的水。 这题一开始我想用最暴力的方法做两层循环O(n^2)的解法提交试一下,可惜超时了,果然 Medium 难度的题目不会这么轻松放我过去的。 既然 O(n^2) 的解法没有办法通过,那就要想办法能不能找出 O(n) 的解法,一遍循环弄出来。我绞尽脑汁想了很久,尝试了好几种方案,始终没有办法解决。我最终不得不求助于前人的

ARTS 打卡 第一周

ARTS 是由陈皓(网名「左耳朵耗子」)在极客时间上发起的一个每周打卡计划,详情查看 https://www.zhihu.com/question/301150832 。 AlgorithmLeetCode 009 — Palindrome Number ReviewHow to think like a programmer — lessons in problem solving 这是 Medium 上的一篇文章,名字翻译成中文是《怎样像程序员一样思考》。 文章的开头说「像程序员一样思考」实际上是指一种更有效的解决问题的方法。 我们每个人总是碰到各种各样的问题,或大或小。我们处理这些问

LeetCode 009 — Palindrome Number

Palindrome Numberhttps://leetcode.com/problems/palindrome-number/ 给定一个整型数,判断这个数是否为回文数 我们根据例子很容易得出,负数不是回文数,一位正整数肯定是回文数。 Solution1首先用最简单的方法,把数字转换成字符串,从两边向中间依次判断对应位的数字是否相等。class Solution {public: bool isPalindrome(int x) { if (x < 0) { return false; }

LeetCode 008 — String to Integer

String to Integer (atoi)https://leetcode.com/problems/string-to-integer-atoi/ 题目大意就是自己实现一个 atoi 函数把字符串转换成一个整型数字 字符可能以多个空格开始,处理的时候要舍弃左边的空格,从第一个不为空格的字符开始处理; 数值字符串可能以+-号开头,要正确处理; 数值字符串后可能带有多余的非数字字符,这些字符不会对结果造成影响,处理的时候要忽略; 第一个非空格字符不是合法的数字字符或者+-号的时候,这个字符串不是合法的数值字符串,要返回 0; 结果大于 INT_MAX (2^31 − 1) 的时候返回 I

Docker 部署 pyspider 踩坑实录

最近在倒腾 pyspider,不得不说这个爬虫框架用起来真的很方便。从编写调试到部署一条龙服务, 对于我这种 Scrapy 苦手来说,简直就是救星。另外 pyspider 还提供了 Docker 镜像,通过 Docker 部署省去了安装依赖的麻烦。不过我实际根据官方文档尝试 Docker Compose 部署的时候还是遇到了一点小麻烦,搜索折腾了一番之后总算弄好了,这里做个记录。 ImportError: No module named MySQLdb执行 docker-compose up 的时候,报了这个错误,解决方法是安装 MySQL-python。# DockerfileFROM bi

nginx 安装和配置速记

安装在 Ubuntu 下可以通过 apt-get 安装: sudo apt-get install nginx 安装完成后 nginx 会自动启动,这时候可以通过浏览器访问 80 端口。不出意外的话,就可以看到「Welcome to nginx!」的提示信息。 启动、关闭与重载配置执行 nginx 命令可以直接启动 ngxin。如果 nginx 已经在运行,那么可能会出现端绑定错误提示。或者,nginx 默认的 80 端口被别的程序占用,那么也会出现这个错误。 在 nginx 已经在运行的情况下,可以通过 -s 参数对 nginx 进行控制: nginx -s signal 执行 nginx

Linux 笔记 — 使用 Screen 管理会话

基本使用新建一个名为 kuma 的会话screen -S kuma 列出当前所有会话screen -ls 恢复名为 kuma 的会话screen -r kuma 快捷键ctrl+a d 断开(detach)当前会话 ctrl+a k 杀掉(kill)当前会话