ZeoYa's Home


  • Home

  • About

  • Tags

  • Categories

  • Archives

'lintcode 丢鸡蛋'

Posted on 2019-04-12 | In algorithm
lintcode 丢鸡蛋描述楼有n层高,鸡蛋若从k层或以上扔,就会碎。从k层以下扔,就不会碎。 现在给两个鸡蛋,用最少的扔的次数找到k。返回最坏情况下次数。 样例对于n=10, 一种找k的初级方法是从1、2…k层不断找。但最坏情况下要扔10次。 注意有两个鸡蛋可以使用,所以可以从4、7、9层扔。这样最坏就只需要4次(例如k=6时)。给出 n = 10, 返回 4.给出 n = 100, 返回14. ...
Read more »

'lintcode 基础计算器'

Posted on 2019-04-12 | In algorithm
描述实现一个基本的计算器来计算一个简单的表达式字符串。 表达式字符串可以包含左括号 (和右括号 )、加号+或减号-、non-negative 整数和空格。 表达式字符串只包含非负整数、+, -, *, /操作符、左括号 (,右括号 )和空格。 您可以假设给定的表达式总是有效的。所有中间结果将在“[-2147483648,2147483647]”范围内。 样例“1 + 1” = 2“ 6-4 / 2 ...
Read more »

'lintcode 带环链表'

Posted on 2019-04-12 | In algorithm
lintcode 带环链表描述给定一个链表,判断它是否有环。 样例给出 -21->10->4->5, tail connects to node index 1,返回 true 挑战不要使用额外空间 思路快慢指针,如果有环,一定能在On时间内相遇。 代码1234567891011121314151617181920212223242526272829303132/** * Def ...
Read more »

'lintcode 打劫房屋'

Posted on 2019-04-12 | In algorithm
描述假设你是一个专业的窃贼,准备沿着一条街打劫房屋。每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且 当相邻的两个房子同一天被打劫时,该系统会自动报警。 给定一个非负整数列表,表示每个房子中存放的钱, 算一算,如果今晚去打劫,在不触动报警装置的情况下, 你最多可以得到多少钱 。 样例样例 1: 输入: [3, 8, 4]输出: 8解释: 仅仅打劫第二个房子 ...
Read more »

'lintcode 带环链表2'

Posted on 2019-04-12 | In algorithm
lintcode 带环链表2描述给定一个链表,如果链表中存在环,则返回到链表中环的起始节点,如果没有环,返回null。 样例给出-21->10->4->5,返回10解释:最后一个节点5指向下标为1的节点,也就是10,所以环的入口为10 挑战不使用额外的空间 思路和带环链表找环一样,使用快慢指针,当fast == slow的时候,就说明有环了。此时通过数学计算可以证明此时slow指 ...
Read more »

'C++ vector的初始化'

Posted on 2019-04-12 | In C++
因为编算法的时候经常用的STL函数库的vector,每次初始化的时候都要搜一下,这次自己整理一下。 一维数组的初始化1. vector < int > v;这时候v的size为0,如果直接进行访问 v[i] 会报错。这里可以使用 v.resize(n),或者v.resize(n, m) 来初始化前者是使用n个0来初始化,后者是使用n个m来初始化。 2. vector < int ...
Read more »

'lintcode 奇偶跳'

Posted on 2019-04-12 | In algorithm
描述给定一个整数数组A。从某一些起始索引,你可以做一系列的跳跃。其中的(第1,第3,第5 ……)跳跃称为奇数跳跃,(第2,第4,第6 ……)跳跃称为偶数跳跃。 你可以从索引i 以下列方式跳转到索引 j(i <j): 在奇数跳跃(即跳跃1,3,5,…)期间,跳转到索引j,使得A [i] <= A [j]并且A [j]是可能的最小值。如果有多个这样的索引j,则只能跳转到最小的索引 j。 在 ...
Read more »

'lintcode 丢鸡蛋2'

Posted on 2019-04-12 | In algorithm
lintcode 丢鸡蛋2描述有一个n层的建筑。如果一个鸡蛋从第k层及以上落下,它会碎掉。如果从低于这一层的任意层落下,都不会碎。有m个鸡蛋,用最坏的情况下实验次数最少的方法去找到k, 返回最坏情况下所需的实验次数。 样例Example 1: Input: m = 2, n = 100Output: 14Example 2: Input: m = 2, n = 36Output: 8 思路利用动态 ...
Read more »

'lintcode 打劫房屋3'

Posted on 2019-04-12 | In algorithm
@TOC 描述在上次打劫完一条街道之后和一圈房屋之后,窃贼又发现了一个新的可以打劫的地方,但这次所有的房子组成的区域比较奇怪,聪明的窃贼考察地形之后,发现这次的地形是一颗二叉树。与前两次偷窃相似的是每个房子都存放着特定金额的钱。你面临的唯一约束条件是:相邻的房子装着相互联系的防盗系统,且当相邻的两个房子同一天被打劫时,该系统会自动报警。 算一算,如果今晚去打劫,你最多可以得到多少钱,当然在不触动报 ...
Read more »

'lintcode 排列序号'

Posted on 2019-04-12 | In algorithm
lintcode 排列序号描述给出一个不含重复数字的排列,求这些数字的所有排列按字典序排序后该排列的编号。其中,编号从1开始。 样例例如,排列 [1,2,4] 是第 1 个排列。 思路排列一共有n!种,最高位定下来之后一共是n个(n-1)!种排列,根据这种性质,可以通过查找低位比高位小的个数来计算当前位置.比如,1247的排列个数是4!个.寻找2174的位置.首选从最高位的2开始,后面比他小的只有 ...
Read more »
1…345…8
ZeoYa

ZeoYa

71 posts
2 categories
11 tags
© 2019 ZeoYa
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4