V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  cloudzhou  ›  全部回复第 42 页 / 共 57 页
回复总数  1134
1 ... 38  39  40  41  42  43  44  45  46  47 ... 57  
2014-10-29 16:34:11 +08:00
回复了 williamx 创建的主题 Ruby on Rails nginx+rails+mysql 需要什么样的服务器?
@sunday35034 基本上,不推荐 swap 分区了,会导致系统震荡,问题是:真的就需要这么多内存吗?
这是最基本的算法,最近刚好在给人面试,自己想出来的一些题目,供大家参考:

1 走台阶问题:
很长的台阶,共有 X 级,一个大人每次可以走 m级 或者 n级,如果最后剩下不足 m级 或者 n级,那就算一步走完,问有几种不同的走法。
比如 7 级的台阶,每次可以走 2级 和 3级,有 5 种走法:
2->2->2->1
3->2->2
2->3->2
2->2->3
3->3->1

有两种解法: 1 动态规划 2 排列组合

2 能否求零问题:
给出一组正数,随意排列组合,每个正数使用且只使用一次,使用 +, - ,判断能否得到 0。
比如 {1,3,7,8,11} 那么 11 - 8 - 7 + 3 + 1 = 0。
而 {1,3,7} 那么无论怎么排列和+-都没办法得到 0。

解法:贪心求最优解

3 给出一组正数和目标值,判断能否在这组正数里每个数乘以一个非负数求和得到目标值。
比如 {3, 4} 目标值是 17,那么可以通过 3*3 + 2*4 = 17。
{3, 4} 目标值是 18,那么可以通过 6*3 + 0*4 = 18、 2*3 + 3*4 = 18 等等。
而如果 {9, 7} 目标值是 19,没办法找到合适的 非负数相乘求和 得到 19。

解法:这是一个 DFS 遍历的问题。

4 另外就是一些现实的问题,比如怎么简单实现一个 LRU cache。
解法:hash + 双向链表,能考一些编码细节。


这些题目虽然有些理论化,但是还是能看出编码能力的。
2014-10-10 09:31:59 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@lushl9301 你们现在这种意识真好,以前迷迷糊糊不知道怎么学起,计算机就应该从基本理论,算法和数据结构开始学起
2014-10-09 09:33:34 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@liuchang0812 我对 c/c++ 不了解,之前看书的时候是推荐申请内存之后 memset zero,是一种编程上的防御手段吧。所以我也不了解现在默认情况下申请内存后就是 zero 的。

谁对这一块了解的麻烦讲讲?
2014-10-09 00:18:07 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@liuchang0812
@chengdujin

哈哈,我已经找到问题的关键了,这两者复杂度是一样的,soulmachine/leetcode 的方法更加好理解,如果注销了 fill_n(&f[0][0], n * n, false); 这一句就完全可以通过了。
如果 @liuchang0812 加了 fill_n(&f[0][0], 1001 * 1001, 0); 这一句同样也是 Time Limit Exceeded 的,这真是个有趣的问题。

从工程化来说:申请并且对内存段进行 zero 是一个很好的习惯。
2014-10-09 00:02:47 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
2014-10-08 23:59:38 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@liuchang0812
@chengdujin
真是很神奇,@liuchang0812 的算法真的能过,我是参照 https://github.com/soulmachine/leetcode 里面的解法的,完全照抄也没有通过,这两者之间有什么不一样呢?
2014-10-08 16:52:06 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@lushl9301 所以这就是竞技和实际开发的不同啊。
如果只是竞技,那就是不断的刷题,并且练习快速编程。
如果为了加强计算机基础,提高实际掌握问题的能力,那就回归到理论。
对我来说,竞技根本就没有必要,并且不是为了刷提为目的的,所以认真看书,加强理论知识才是我要做的。
2014-10-08 16:01:09 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@yangff 还有人说可以使用后缀数组实现,也没有仔细看。等我补充一点理论知识再来做题 :-)
2014-10-08 15:37:29 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@chengdujin 恩,看来是必须 O(n) 才能过,这个算法我就没有深究了。
leetcode 有一些题目,包括一些面试题,有点“讨巧”的意味,我不认为这是好的面试题。
对于个人,我更喜欢一些贴近现实的题目,比如 LRU 的实现,再引入并发,探讨空间很大,这是面试的好题目。
2014-10-08 15:02:41 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@chengdujin Text Justification 难度很小,就是细节题目而已。
Wildcard Matching 这道题目我也是放弃了,虽然使用递归实现了,但是 timeout 了。

有一道题目我需要咨询一下:
Longest Palindromic Substring
这道题目使用 动态规划 是很明显的,复杂度 O(n^2),但是哪怕我照抄前人 cpp 的代码也不能通过。
我知道有一种 O(n) 的解法,http://leetcode.com/2011/11/longest-palindromic-substring-part-ii.html

不知道是不是 leetcode 对这道题目的评判标准提高了?
2014-10-08 14:20:42 +08:00
回复了 cloudzhou 创建的主题 程序员 leetcode 刷题有感
@likaci 我还真的是很喜欢数学啊 :-),就是遗憾没有太多时间啊
@killme2008
我以前设计 API 的时候,对所有 API 请求拦截 Time-Zone 参数,然后输出的时候 json 对 Date Field 进行处理,输出对应的 Time-Zone 时间,这样请求者就不用做这样的事情了。
2014-09-17 23:18:41 +08:00
回复了 shyrock 创建的主题 MySQL MySQL 的 like %关键字怎么优化?
如果对 lucene 比较熟悉,可以直接使用 lucene 来做
2014-09-13 00:39:00 +08:00
回复了 simo 创建的主题 分享发现 除了 yeelink 还有哪些免费物联网云平台?
iot.espressif.cn 我就是开发者
2014-08-28 10:22:34 +08:00
回复了 kokdemo 创建的主题 程序员 作为程序员,能不能拒绝这样的开发需求?
这是你要做的,这样的需求使用脚本语言等等快速自动生成。要把手工的事情变自动化。
2014-08-23 09:55:18 +08:00
回复了 huaiyinhou 创建的主题 Linux tcp 三次握手的奇葩问题
考虑一下防火墙和路由
1 ... 38  39  40  41  42  43  44  45  46  47 ... 57  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1247 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 17:32 · PVG 01:32 · LAX 09:32 · JFK 12:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.