Giter VIP home page Giter VIP logo

daily-algorithms's People

Contributors

barretlee avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daily-algorithms's Issues

Container With Most Water

本题难度:★★

给定 N 个非负整数 a1, a2, ..., an, 每个数对应坐标上的一个点 (i, ai),在坐标轴上将所有的 (i ,0) 和 (i, ai) 使用直线链接起来。

任何两条 相邻的 线 (包含 Y 轴) ,这两条线与 X 轴构成一个容器,找出容量最大的容器对应的线。

注意:不能够倾斜容器,并且 n 不小于 2。

关于 daily-algorithms

花点时间实践算法,每日练习。

  • ★ 表示 easy,★★ 表示 medium,★★★ 表示 hard;
  • 题目主要来自 leetcode,可能会适当变换题设,改变难度;
  • 对于 ★ 和 ★★ 难度的题目,每天的量会随机出现 1~5 个,尤其是 ★ 的题目,比较简单。

白天出题,尽量晚上给出参考答案。

仓库结构

讨论列表:https://github.com/barretlee/daily-algorithms/issues,每天的题目 & 参考答案,会记录在本仓库。

  • /questions,算法题,主要来自 leetcode;
  • /answers,questions 对应的答案,文件名包含 empty 表示未给出答案,不过可以去 issue 中查看讨论;
  • /ref,一些算法技巧,以及数据结构的实现。

Letter Combinations of a Phone Number

本题难度:★★

给定一个纯数字的字符串,根据下面九宫格表返回所有可能的字母组合:

九宫格表

比如给定 "23",那么所有可能的输出为:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]

注意:上面给出的是按照辞典顺序输出的,可以不考虑顺序。

Two Sum

本题难度:★

给定一个整数数组,其中有两项之和为一个特定的数字,假设每次 input 只有一个唯一解,不允许两次使用同一个元素,返回这两个数的索引。

比如:

给定 nums = [2, 7, 11, 15],target = 9

由于 nums[0] + nums[1] = 9
所以返回 [0, 1]

参考答案:https://github.com/barretlee/daily-algorithms/blob/master/answers/1.md

4Sum

本题难度:★★

给定一个长度为 n 的整数数组 S,找出所有的非重复四元组 (a, b, c, d) 使得 a + b + c + d = target,如:

给定数组 S = [1, 0, -1, 0, -2, 2], target = 0,
那么输出结果为:

[
  [-1,  0, 0, 1],
  [-2, -1, 1, 2],
  [-2,  0, 0, 2]
]

要求:

  1. 输出的四元组按照顺序排列,即 a ≤ b ≤ c ≤ d;
  2. 最后的输出结果不存在重复元组.

Regular Expression Matching

本题难度:★★★

实现一个正则表达式引擎,让其支持匹配 .*,其中:

  • . 匹配任何单字符
  • * 匹配 0 个或者多个前字符

需要匹配全部输入而非部分输入,函数格式如下:

bool isMatch(const char *s, const char *p)

如:

isMatch('aa', 'a') // false
isMatch('aa', 'aa') // true
isMatch('aaa', 'aa') // false
isMatch('aa', 'a*') // true
isMatch('aa', '.*') // true
isMatch('ab', '.*') // true
isMatch('aab', 'c*a*b') // true

参考答案:https://github.com/barretlee/daily-algorithms/blob/master/answers/6.md

Longest Common Prefix

本题难度:★

写一个函数,找出一个字符串数组的最长共同前缀。例如:

给定 ['hi, barret', 'hi, skylar', 'hi, john'],输出 'hi, '

3Sum Closest

本题难度:★★

给定一个长度为 n 整数数组 S,找出三个整数,使得三数之和最接近给定的一个目标数 target,返回这三数之和。

假定给定的 S 只有一个解,例如:

给定 S = [-1, 2, 1, -4], target = 1,与 target 最接近的三数和为 (-1 + 2 + 1 = 2),输出 2.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.