算法
文章平均质量分 63
Fredroid
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[LeetCode-6]ZigZag字符串的变换输出
在LeetCode的第六个算法问题中,要求给定行数numRows,将一个字符串转变为ZigZag字符串再逐行读出。ZigZag字符串即由常规字符串通过Z字形排列形成。举个例子,Mathematics在给定行数为4的情况下,其ZigZag字符串形式如下:M aa mtt e i sh c而需要输出的是逐行读出的结果,即Maamtteishc从原创 2017-06-28 22:28:35 · 584 阅读 · 0 评论 -
寻找最长回文子串(Palindromic Substring)的一种简单的Java解法
回文字符串,指的是形式如同"abcba"或是"abccba“形式的字符串。那么如何在一串给定的字符串中寻找其中最长的回文子串呢?可以用延伸的思想来寻找,即先找最短的字符串如"a"、"bb"等,在这些字符串基础上进行延伸扩展,若是找到的符合要求的子串长度大于已找到的回文子串的最大长度,则取而代之,同时记录该子串的第一个字符的下标。通过这种思想将字符串遍历执行即可找到最大回文子串。pu原创 2017-06-27 13:35:43 · 778 阅读 · 0 评论 -
简单正则表达式匹配的Java实现
LeetCode的Problem 10 (Regular Expression Matching)是一道简单版本的正则表达式匹配问题。题中的匹配符号只有两种,分别是"."和"*",前者可以匹配任意单个字符。后者在使用时需要保证符号前有字符或"."存在,匹配0个或多个字符。即a*匹配0个或多个连续的a,.*代表任意个".",因此匹配所有的字符串。题目要求输入目的字符串s以及匹配字符串p,输出匹配结果原创 2017-08-29 21:41:06 · 1025 阅读 · 0 评论 -
巧妙统计二进制数中1的个数
二进制数中,每一位非0即1。要计算一个二进制数中1的个数,不妨设其位数为N,首先最容易想到的一种解法就是逐位判断是否为1,并记录。那么如何逐位判断呢?可以通过将该数除以2,判断其余数是否为1。当然效率更高一些的方式是先将该数与1作与运算,结果不为0则计数,然后将该数右移,之后重复上述步骤。这种方式的时间复杂度为O(N)。然而,对于这个问题,O(N)并不是最好最快的解法。有没有可能将复杂度缩小到只与1原创 2017-09-10 20:04:48 · 1001 阅读 · 0 评论 -
斐波那契数列及系列问题
斐波那契数列,即 0,1,1,2,3,5,8...,从第三个数开始,数值为前两个数之和。对于该数列,求解第n项只需要通过迭代即可完成。public class Solution { public int Fibonacci(int n) { int left=0,right=1,result=0; if(n<0) return -原创 2017-05-25 22:34:44 · 660 阅读 · 0 评论 -
分糖问题
问题描述Solo和koko是两兄弟,妈妈给了他们一大袋糖,每块糖上都有自己的重量。现在他们想要将这些糖分成两堆。分糖的任务当然落到了大哥Solo的身上,然而koko要求必须两个人获得的糖的总重量“相等”(根据Koko的逻辑),要不然就会哭的。非常不幸的是,koko还非常小,并且他只会先将两个数转成二进制再进行加法,而且总会忘记进位。如当12(1100)加5(101)时: &nbs...原创 2019-09-12 00:16:22 · 5913 阅读 · 8 评论
分享