关闭

C++ Memory Management C++ 内存管理

Problem C++ has several distinct memory areas where objects and non-object values may be stored, and each area has different characteristics. Name as many of the distinct memory areas as you can. Fo...
阅读(411) 评论(0)

[LeetCode] 01矩阵中最大正方形 Maximal Square

Given a 2D binary matrix filled with 0's and 1's, find the largest square containing all 1's and return its area. For example, given the following matrix: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 Re...
阅读(2967) 评论(0)

[LeetCode] Shortest Palindrome I

相关问题1:最长回文子串 相关问题2:Minimum insertions to form a palindrome Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. Find and return the shortest pal...
阅读(580) 评论(0)

Minimum insertions to form a palindrome

给你一个字符串S,插入一些字符,把 S 转换成一个回文字符串。 例如: ab: Number of insertions required is 1. bab aa: Number of insertions required is 0. aa abcd: Number of insertions required is 3. dcbabcd abcda: Number of inser...
阅读(572) 评论(0)

[LeetCode] Count Complete Tree Nodes

Given a complete binary tree, count the number of nodes. 思路: 找到最左边的节点和最右边的节点,如果二者高度一致,那么说明最后一层是满的,返回2^h-1。否则,递归下去。 代码: int countNodes(TreeNode* root) { if(!root) return 0;...
阅读(356) 评论(0)

[LeetCode] Fraction to Recurring Decimal

Given two integers representing the numerator and denominator of a fraction, return the fraction in string format. If the fractional part is repeating, enclose the repeating part in parentheses. For e...
阅读(396) 评论(0)

[LeetCode] Best Time to Buy and Sell Stock VI

相关问题: 给你一个数组,数组的每个元素表示每天的stock价格,你最多可以进行k次交易,两次交易不能在时间上重叠,也就是说,你必须先卖掉股票,才能再买入股票。求可以获得的最大利润。  思路:利用动态规划。 这里我们需要两个递推公式来分别更新两个变量local和global,参见网友Code Ganker的博客,我们其实可以求至少k次交易的最大利润。我们定义local[i][j]为在到达第i...
阅读(369) 评论(0)

[LeetCode] Best Time to Buy and Sell Stock III

相关问题:[LeetCode] Best Time to Buy and Sell Stock II 给你一个数组,数组的每个元素表示每天的stock价格,你最多可以进行2次交易,两次交易不能在时间上重叠,也就是说,你必须先卖掉股票,才能再买入股票。求可以获得的最大利润。 该问题还可以扩展为:把最多2次交易的条件,改成最多k次交易。 相关问题:...
阅读(324) 评论(0)

Find maximum repeating number

给你一个长度是n的整数数组,数组中数字的范围是 [0, k-1] ,  k 满足 k 思路1: 用计数排序的方法,把数组排序,然后找到最大的重复出现的数字。 思路2: 假如给定arr[] = {2, 3, 3, 5, 3, 4, 1, 7}, k = 8, n = 8。那么, Iterate though input array arr[], for every...
阅读(276) 评论(0)

[LeetCode] Insert Interval 插入区间

Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessary). You may assume that the intervals were initially sorted according to their start times. Exam...
阅读(323) 评论(0)

字符串旋转-回文字符串

相关问题:最长回文子串 给你一个字符串,求问,这个字符串旋转之后是不是一个回文字符串? 例如:给你字符串 str = "aaaab",那么str旋转之后可以得到 str_new = "aabaa",是个回文字符串。 思路:可以把str和str接起来,得到“aaaabaaaab”,然后对"aaaabaaaab"求最长回文字符子串。利用Machester算法,复杂度是O(n)....
阅读(378) 评论(0)

Egg Drop 扔鸡蛋

假设有 n=2 个完全一样的鸡蛋, 有 k=36 层楼。 存在一个楼层 m,把鸡蛋从低于m的楼层扔下去的时候,鸡蛋不会摔破;把鸡蛋从高于等于m的楼层扔下去的时候,鸡蛋会摔破。题目要求,找出临界楼层m,并且扔鸡蛋的次数要做到最少。 思路: 最简单的方法是,从第 1 层往上,一层一层 的扔鸡蛋,直到鸡蛋摔碎。这样需要扔鸡蛋 m 次。 下面用递归的方法解决该问题。假设鸡蛋从 x 层扔下去。(1)如...
阅读(1411) 评论(1)

[LeetCode] 零的个数 number of trailing zeros

给定一个整数 n,求出n的阶乘的尾零的个数。 思路:只有2和5相乘才能得到一个尾零。如果2^2和5^2相乘,能得到两个尾零。。。 代码: int numZeros(int num) { int count = 0; if (num < 0) { cout<<"Factorial is not defined for < 0"; return 0; } for...
阅读(574) 评论(0)

后缀树和前缀树

给你一个很长的字符串 s,和一堆短字符串 T = {t1, t2, ...}。 设计一个高效的算法,确定T 里的每个字符串是不是 s 的子串。 思路:先对字符串s构建一个后缀树,然后看看t1,t2...,是不是s的一个后缀的前缀。 构建后缀树和查找后缀树的前缀都可以用递归的思路来解决。 具体代码如下: public class SuffixTree { SuffixTreeNode ro...
阅读(432) 评论(0)

最大重叠区间数目 Maximum number of overlapping intervals

最大重叠区间数目 Maximum number of overlapping intervals 有一个party,许多人来参加。一个记录仪记录下了每个人到达的时间 s_i 和离开的时间 e_i ,也就是说每个人在party的时间为 [ s_i, t_i ]。求出这个party 同一时刻最多接纳了多少人。例如: Input: arrl  [] = {1, 2, 9, 5, 5}       ...
阅读(508) 评论(0)
384条 共26页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:599727次
    • 积分:9208
    • 等级:
    • 排名:第2229名
    • 原创:279篇
    • 转载:86篇
    • 译文:19篇
    • 评论:38条
    最新评论