LEETCODE leetcode.com 一 个 在 线 编 程 网 站, 收 集 了 IT 公 司 的 面 试 题, 包 括 算 法, 数 据 库 和 shell 算 法 题 支 持 多 种 语 言, 包 括 C, C++, Java, Python 等 2015 年 3 月 份 加 入 了 R

Similar documents

最新监狱管理执法全书(二百零五)

C/C++ - 字符输入输出和字符确认

ENGG1410-F Tutorial 6

<4D F736F F D20A5FAA9FAAABAB4BCBC7AA15DA440A15EB773A5C1AF5AA1C4B871B8D1A15DB16DA6E2A15E2E646F63>

Microsoft Word - ChineseSATII .doc

3.1 num = 3 ch = 'C' 2

声 明 本 公 司 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 股 票 发 行 方 案 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 和 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 根 据 证 券 法 的 规 定

Microsoft Word - 第3章.doc

高雄市左營國民小學八十九學年度第一學期一年級總體課程教學進度表

Microsoft Word - Final Exam Review Packet.docx

從篤加有二「區」談當代平埔文化復振現相

目 錄 壹 緒 論... 2 貳 明 時 代 背 景 一 明 代 禮 教 之 於 女 性? 母 德 婦 德... 2 二 明 代 婦 女 之 於 士 人? 經 濟 支 柱... 4 參 歸 有 光 一 仕 途... 7 二 家 庭... 7 肆 歸 有 光 文 學 裡 的 女 性 比 較 一 < 項

幻灯片 1

<4D F736F F D20312EA1B6BDCCCAA6D7CAB8F1CCF5C0FDA1B72E646F63>

附件

穨series019-IA.PDF

Microsoft Word - 长安大学.doc

可 愛 的 動 物 小 五 雷 雅 理 第 一 次 小 六 甲 黃 駿 朗 今 年 暑 假 發 生 了 一 件 令 人 非 常 難 忘 的 事 情, 我 第 一 次 參 加 宿 營, 離 開 父 母, 自 己 照 顧 自 己, 出 發 前, 我 的 心 情 十 分 緊 張 當 到 達 目 的 地 後

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 1 欢 迎 持 续 在 门 口 欢 迎 学 生, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 预 备 活 动 <10 分 钟 A 猜 猜 是 谁 B 上 帝 的 礼 物 无 孩 子 们 的 儿 时

团 契 就 体 力 来 说, 参 孙 乃 是 地 上 极 强 壮 的 人 ; 但 在 自 制 忠 贞 和 坚 稳 上, 他 却 是 人 间 最 软 弱 的 了 先 祖 与 先 知 第 页 教 室 布 置 见 第 一 课 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动

2. 贵 阳 沙 文 工 业 园 汉 方 药 业 新 工 厂 资 本 性 支 出 费 用 高 估 : 根 据 我 们 的 访 谈 得 知, 在 2014 财 年, 截 至 2014 年 6 月 30 日, 该 项 目 仅 完 工 约 30% 因 此, 仅 有 人 民 币 千 万 元 (

39 屆 畢 業 典 禮

Microsoft Word - 十月號.doc

Microsoft Word - 中三選科指南 2014 subject

PowerPoint Presentation

第十一届“21世纪杯”全国中小学生英语演讲比赛

C/C++语言 - 运算符、表达式和语句

Microsoft Word - SH doc

(i) (ii) 97/99/M

博士 文中所谓 父伯仪少有文学 是指程仪少有文 艺天赋 与官职 文学 也没有关系 不能将此 文 学 理解为 婺州文学 从 唐朝名画录 的语义逻辑判断 遂令修己 当为 遂令伯仪 原文如下 程修己 其先冀州人 祖大历中任越州医博士 父伯仪少有文学 时周昉任越州长史 遂令伯仪师事 凡 二 十 年 中 师

<4D F736F F D20ADB5BCD6C554AE62A4E5B6B02DA7B9BD5A>

Microsoft PowerPoint - Lecture7II.ppt

本 期 导 读 : * 过 去 两 周 A 股 新 增 一 年 期 定 增 预 案 3 项, 预 计 募 集 资 金 总 额 亿 元 ( 比 上 期 减 少 7.6%); 其 中 2 亿 元 以 下 的 项 目 17 个, 融 资 规 模 为 亿, 比 上 一 期 增 加

硕 士 学 位 论 文 论 文 题 目 : 北 岛 诗 歌 创 作 的 双 重 困 境 专 业 名 称 : 中 国 现 当 代 文 学 研 究 方 向 : 中 国 新 诗 研 究 论 文 作 者 : 奚 荣 荣 指 导 老 师 : 姜 玉 琴 2014 年 12 月

证券投资基金信息披露XBRL标引规范第2号<半年度报告摘要>

Microsoft PowerPoint - ryz_030708_pwo.ppt

2015年4月11日雅思阅读预测机经(新东方版)

Microsoft Word - ChiIndexofNHE-03.doc

期 李 环 等 邻 苯 二 甲 酸 二 丁 酯 暴 露 对 雄 性 大 鼠 生 精 细 胞 功 能 影 响 1 )!# $ + $#'!!) #!%,$' $ 6. $#! +!! '!!' # $! 引 言 - # # 近 年 来 生 殖 健 康 问 题 日 益 突 出 % 不 孕 不 育 等 各

Microsoft Word - 00教学管理手册 mo.doc

高中英文科教師甄試心得

女性减肥健身(六).doc

Microsoft Word - 第四組心得.doc

第 期 熊 安 萍 等 *1$ 文 件 系 统 中 范 围 锁 机 制 的 应 用 研 究! 锁 命 名 空 间 '+'($($ 描 述 了 资 源 和 锁 的 集 合 它 同 时 在 客 户 节 点 和 服 务 节 点 存 在 不 同 之 处 只 是 利 用 一 个 数 据 标 识 来 有 效 区

<4D F736F F F696E74202D20A8E2A9A4AA41B0C8B77EB654A9F6B67DA9F1ABE1A141BB4FC657AAF7BFC4AAF7BFC4AA41B0C8B77EA4A7B0D3BEF7BB50AC44BED420A6BFACB C >

天主教永年高級中學綜合高中課程手冊目錄

untitled

Microsoft Word - TIP006SCH Uni-edit Writing Tip - Presentperfecttenseandpasttenseinyourintroduction readytopublish

% 缓 解 患 者 的 心 理 障 碍 或 问 题, 促 进 其 人 格 向 健 康 治 疗 协 调 的 方 向 发 展 精 神 分 析 学 派 心 理 治 疗 起 源 于 弗 洛 依 德 ( ) 于 世 早 期 为 弗 洛 依 德 创 立 的 经 典 精 神 分 析 弗 洛 纪 末 创 始 的 精

gongGaoMingCheng

目 錄 壹 青 輔 會 結 案 附 件 貳 活 動 計 劃 書 參 執 行 內 容 一 教 學 內 容 二 與 當 地 教 師 教 學 交 流 三 服 務 執 行 進 度 肆 執 行 成 效 一 教 學 課 程 二 與 當 地 教 師 教 學 交 流 三 服 務 滿 意 度 調 查 伍 服 務 檢

K526-ML

2

公司预计2010年日常关联交易的议案

untitled

Microsoft Word 軟體設計第二部份範例試題_C++_ _1_.doc

Preface This guide is intended to standardize the use of the WeChat brand and ensure the brand's integrity and consistency. The guide applies to all d

Microsoft PowerPoint - ch6 [相容模式]

<4D F736F F D20B5DAC8FDB7BDBE57C9CFD6A7B8B6D6AEB7A8C2C98696EE7DCCBDBEBF2E646F63>

文 每 由 充 羊 * 亚 就 N 有 达 品 周 成 虽 驰 水 拟 希 公 下 它 当 上 希 仿 上 潘 注 可 当 缪 歇 传 湖 也 也 对 多 生 古 反 或 只 牛 分 可 妙 西 4 期 杨 宏 芹 发 展 之 源 与 流 7 e < x ; > u 0 V 转 义 可 表 示 短

(\244j\257d\276\307\274\351_ C.indd_70%.pdf)

婴幼儿护理(四).doc

上市公司运作的法律框架及董事会秘书的法律义务和法律责任.ppt

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 孩 子, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 无 预 备 活 动 <10 分 钟 A 十 诫 石 板 B 我 是 谁? 粘 土 牙 签 一 些 名 人 的 照

Microsoft Word - 09.數學 docx


<4D F736F F D20AE67BD62B6A4C1FAB0EAB2BEA661B056BD6DAAF0B0EAB3F8A7695F30372E31302E31365F2E646F63>

100學年度大學推甄申請面試題庫

<4D F736F F D20B5DAC1F9BDECB6ADCAC2B5DAC8FDB4CEBBE1BEF6D2E9B9ABB8E D E646F63>

女性健美保健(中).doc

Microsoft PowerPoint - STU_EC_Ch08.ppt

1 重 要 提 示 1.1 重 要 提 示 基 金 管 理 人 的 董 事 会 董 事 保 证 本 报 告 所 载 资 料 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 内 容 的 真 实 性 准 确 性 和 完 整 性 承 担 个 别 及 连 带 的 法 律 责

附件1


丁无悔

Microsoft Word - 吴教普〔2016〕19号.doc


042-

019-

親鸞和懺悔道的哲學

027-

025-

江 苏 科 技 大 学 809 机 械 设 计 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 江 苏 科 技 大 学 810 机 械 原 理 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 江 苏 科 技 大 学 机 械 原

太 原 科 技 大 学 811 西 方 哲 学 史 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 1-1 本 套 资 料 没 真 题 注 : 若 考 前 收 集 到 最 新 考 研 真 题, 我 们 将 免 费 邮 件 发 送 给 购 买 资 料 的 考 生, 若 考 生 自

鲁 东 大 学 702 普 通 心 理 学 ( 含 发 展 心 理 学 ) 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 普 通 心 理 学 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大

浙 江 财 经 大 学 891 统 计 学 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 浙 江 财 经 大 学 统 计 学 891 全 套 考 研 资 料...22 浙 江 财 经 大 学 高 等 数 学 601 全 套 考 研 资 料

<4D F736F F D EA16DBB50B3AFA742A4A7AED1A16EBD67A6AEA4CEA8E4C3C0B34EAF53A6E2B1B4AA522D2DB3B9A5BFA9BE5F702E34332D35345F2E646F63>

Microsoft Word 司仲敖.doc

苏 州 科 技 学 院 825 管 理 学 原 理 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 管 理 学 原 理 真 题 , 历 年 真 题 主 要 用 来 研 究 考 研 的 考 点, 重 点 和 出 题 思 路, 为 考 研 最 重 要

重 庆 邮 电 大 学 数 据 结 构 802 初 试 内 部 精 华 资 料 1-1 数 据 结 构 2007, 暂 无 答 案 2-1 考 研 复 习 规 划 指 导 全 年 专 业 课 复 习 计 划, 指 导 考 生 科 学 时 间 分 配, 提 高 备 考 效 率, 免 费 赠 送 2-2

海 军 大 连 舰 艇 学 院 807 有 机 化 学 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 有 机 化 学 笔 记, 此 笔 记 为 高 分 研 究 生 复 习 所 用, 借 助 此 笔 记 可 以 大 大 提 高 复 习 效 率, 把 握 报 考 院 校 2

喜 临 门 家 具 股 份 有 限 公 司 2016 年 第 二 次 临 时 股 东 大 会 会 议 议 程 会 议 召 集 人 : 公 司 董 事 会 现 场 会 议 时 间 :2016 年 6 月 16 日 ( 星 期 五 ) 下 午 14 时 现 场 会 议 地 点 : 浙 江 省 绍 兴 市

关于调整可充抵保证金证券的通知( )

Microsoft Word - Book 2 月下行.doc

Microsoft Word - Book 11 人道行.doc

山 东 财 经 大 学 431 金 融 学 综 合 全 套 考 研 资 料 <2016 年 最 新 考 研 资 料 > 2-2 金 融 学 笔 记, 由 考 取 本 校 本 专 业 高 分 研 究 生 总 结 而 来, 重 点 突 出, 借 助 此 笔 记 可 以 大 大 提 高 复 习 2-3 金

盐 田 区 2015 年 社 会 建 设 行 动 计 划 2015 年 是 全 面 深 化 改 革 的 关 键 之 年 全 面 推 进 依 法 治 区 的 开 局 之 年, 也 是 十 二 五 规 划 的 收 官 之 年 十 三 五 规 划 的 谋 划 之 年 结 合 省 市 年 度 社 会 工 作

Microsoft Word - _二_-1-2D研習講義-孫藝玨.doc


Transcription:

用 RUBY 解 LEETCODE 算 法 题 RUBY CONF CHINA 2015 By @quakewang

LEETCODE leetcode.com 一 个 在 线 编 程 网 站, 收 集 了 IT 公 司 的 面 试 题, 包 括 算 法, 数 据 库 和 shell 算 法 题 支 持 多 种 语 言, 包 括 C, C++, Java, Python 等 2015 年 3 月 份 加 入 了 Ruby 的 支 持

算 法 题 编 程 界 面

为 什 么 要 做 算 法 题 面 试 - 涵 盖 了 各 种 经 典 算 法 题 学 习 - 理 解 数 据 结 构 和 解 题 思 路 休 闲 - 每 天 花 5~30 分 钟 做 几 道 题 目

为 什 么 要 用 RUBY 来 做 算 法 题 体 验 Ruby 语 言 的 生 产 力 学 习 Ruby 的 不 常 用 方 法 其 他 的 语 言... 我 不 熟 :(

// Java public List<List<Integer>> permute(int[] num) { LinkedList<List<Integer>> res = new LinkedList<List<Integer>>(); res.add(new ArrayList<Integer>()); for (int n : num) { int size = res.size(); for (; size > 0; size--) { List<Integer> r = res.pollfirst(); for (int i = 0; i <= r.size(); i++) { List<Integer> t = new ArrayList<Integer>(r); t.add(i, n); res.add(t); } } } return res; 体 验 RUBY 语 言 的 生 产 力 (I) Permutations Given a collection of numbers, return all possible permutations. For example, [1,2,3] have the following permutations: [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].

体 验 RUBY 语 言 的 生 产 力 (I) Permutations def permute(nums) nums.permutation.to_a

体 验 RUBY 语 言 的 生 产 力 (II) Length of Last Word Given a string s consists of upper/lower-case alphabets and empty sp ace characters ' ', return the length of last word in the string. If the last word does not exist, return 0. Note: A word is defined as a character sequence consists of non-spac e characters only. For example, Given s = "Hello World", return 5. def length_of_last_word(s) words = s.split(' ') words.last? words.last.length : 0

体 验 RUBY 语 言 的 生 产 力 (III) Add Digits Given a non-negative integer num, repeatedly add all its digits unti l the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. def add_digits(num) r = num.to_s.chars.map(&:to_i).reduce(:+) r <= 9? r : add_digits(r)

学 习 RUBY 的 不 常 用 方 法 (I) Add Binary Given two binary strings, return their sum (also a binary string). For example, a = "11" b = "1" Return "100". # @param {String} a # @param {String} b # @return {String} def add_binary(a, b) (a.to_i(2) + b.to_i(2)).to_s(2)

学 习 RUBY 的 不 常 用 方 法 (II) Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a gi ven stock on day i. Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple tran sactions at the same time (ie, you must sell the stock before you bu y again). # @param {Integer[]} prices # @return {Integer} def max_profit(prices) prices.each_cons(2).inject(0){ s,a [s+a[1]-a[0], s].max}

学 习 RUBY 的 不 常 用 方 法 (III) Group Anagrams Given an array of strings, group anagrams together. For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"], Return: [ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ] # @param {String[]} strs # @return {String[][]} def group_anagrams(strs) strs.inject(hash.new([])) do h, s h[s.chars.sort.join] += [s] h.map{ k, v v.sort}

关 于 作 弊 (I) Regular Expression Matching Implement regular expression matching with support for '.' and '*'.

关 于 作 弊 (I) 使 用 Ruby 内 置 对 象 # @param {String} s # @param {String} p # @return {Boolean} def is_match(s, p) s =~ /^#{p}$/? true : false

关 于 作 弊 (II) Count Primes Count the number of prime numbers less than a non-negative number.

关 于 作 弊 (II) require # @param {Integer} n # @return {Integer} require 'prime' def count_primes(n) Prime.each(n - 1).count

关 于 作 弊 (III) N-Queens II Follow up for N-Queens problem. Now, instead outputting board config urations, return the total number of distinct solutions.

关 于 作 弊 (III) Test Driven Development # @param {Integer} n # @return {Integer} def total_n_queens(n) [0,1,0,0,2,10,4,40,92,352,724,2680,14200,73712, 365596,2279184,14772512,95815104,666090624][n]

我 的 解 法 V.S 别 人 的 解 法 (I) Add Digits Given a non-negative integer num, repeatedly add all its digits unti l the result has only one digit. For example: Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it. Follow up: Could you do it without any loop/recursion in O(1) runtime? # https://en.wikipedia.org/wiki/digital_root def add_digits(num) 1 + (num - 1) % 9 类 似 直 接 用 算 数 公 式 证 明 的 题 目 比 如 :Perfect Squares

我 的 解 法 V.S 别 人 的 解 法 (II) Single Number Given an array of integers, every element appears twice except for o ne. Find that single one. # @param {Integer[]} nums # @return {Integer} def single_number(nums) nums.sort.each_slice(2).find{ s s[0]!= s[1]}[0] def single_number(nums) nums.inject(:^) 用 XOR 操 作 解 Single Number 系 列 的 通 用 解 法

我 的 解 法 V.S 别 人 的 解 法 (III) Majority Element Given an array of size n, find the majority element. The majority el ement is the element that appears more than n/2 times.you may as sume that the array is non-empty and the majority element always exi st in the array. # @param {Integer[]} nums # @return {Integer} def majority_element(nums) nums.sort[nums.size/2] def majority_element(nums) nums.inject([0, 0]) { (x, c), i c == 0 x == i? [i, c+1] : [x, c-1] }[0] 算 法 出 处 以 及 单 步 演 示

刷 题 能 帮 我 应 聘 到 好 职 位 吗? 我 也 不 知 道 呢... 不 过... 如 果 你 刷 了 很 多 Leetcode, 想 换 个 工 作 的 话... 我 们 正 在 招 聘 Ruby 程 序 员, 投 递 简 历 到 邮 箱 : quake@chanyouji.com 毫 无 广 告 植 入 痕 迹 ^_^

Q & A