写点什么

ARTS-week-2

用户头像
saddamwilson
关注
发布于: 2020 年 08 月 08 日

1. Algorithm

https://leetcode.com/problems/reverse-integer/

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123
Output: 321


Example 2:

Input: -123
Output: -321


Example 3:

Input: 120
Output: 21


Note:

Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.



解题思路1:

首先想到的是把int值转换成string,然后反转string

var reverse = function(x) {
const reversedInt = Math.abs(x).toString().split('').reverse().join('');
if(reversedInt > 2**31) return 0;
return reversedInt * Math.sign(x);
};



解题思路2:

利用整形的特点求余数,然后在用余数乘以相应的10的次幂

var reverse = function(x) {
let result = 0;
let temp = x;
while (temp !== 0) {
result = (result*10) + (temp%10)
temp = parseInt(temp/10)
}
if (parseInt(result) > Math.pow(2, 31)-1 || parseInt(result) < Math.pow(-2, 31)-1){
return 0
} else {
return result;
}
};

2. Review

http://www.catb.org/~esr/faqs/smart-questions.html

看了一篇文章叫做如何问问题?

记住了两个原则STFW和RTFM

搜索互联网和阅读官方手册,搜索互联网这个事已经掌握的很纯属了,但是之前学习东西之前不喜欢阅读官方手册,这个毛病得改掉

3. Tips

学习了正向代理服务器和反向代理服务器的概念,之前接触Nginx的时候,知道Nginx是反向代理服务器,但是不明白什么是反向代理服务器,

正向代理:
反向代理:





由于防火墙的原因,我们并不能直接访问谷歌,那么我们可以借助VPN来实现,这就是一个简单的正向代理的例子。这里你能够发现,正向代理“代理”的是客户端,而且客户端是知道目标的,而目标是不知道客户端是通过VPN访问的。



当我们在外网访问百度的时候,其实会进行一个转发,代理到内网去,这就是所谓的反向代理,即反向代理“代理”的是服务器端,而且这一个过程对于客户端而言是透明的。

4. Share

给大家推荐一本书吧,《程序员修炼之道-从小工到专家》

这本书买了有好多年了,刚参加工作的时候买的,当时也没啥工作惊讶,说实话这本书也没看进去,今年偶然间翻阅书柜,才把这本书找到,工作这么多年回看之后才发现这本书太好了,后悔会有点看晚了,不过怎么说呢,不算是看晚了吧,如果没有踩过坑的话,看过也就白看了没有丝毫感觉,分享书里面的几个观点,

1.破窗理论

不要在程序中留下垃圾代码,也就是破窗,如果有第一次的话,以后慢慢就会腐烂,尤其是多人合作的项目,一定要讲究编码规范,设计规则,否则只要有第一个人这么做了,以后就会有更多的人去模仿,慢慢的程序也就臃肿腐烂了

2.DRY

Don't Repeat Yourself

包括现在我有时候写代码,如果工期催的特别紧的话,我也会做一些无意义的重复的代码,并没有将代码提炼好,这方面还得多看一看重构的思想



发布于: 2020 年 08 月 08 日阅读数: 50
用户头像

saddamwilson

关注

还未添加个人签名 2020.03.24 加入

还未添加个人简介

评论

发布
暂无评论
ARTS-week-2