
算法
djh624
这个作者很懒,什么都没留下…
展开
-
字符串内部大小写交换
有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在大写字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法。c语言函数原型void proc(char *str),也可以采用你自己熟悉的语言。思路:两个指针i,j 初始i指向头,j指向尾. 从头遍历,如果为大写,将位置i,j互换同时j-1,否则i+1,直到i=j....原创 2019-05-07 22:13:42 · 434 阅读 · 0 评论 -
海盗分赃问题
有5个海盗,按照等级从5到1排列。最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?(提示:有一个海盗能拿到98%的金币)注意,是多数人反对才无效,意味着人数相同的情况下提议成功思路:逆推,只剩2人情况,自己拿100,,即两人情况下分配为2号100,1号0。3人情况,1号...原创 2019-05-07 22:59:42 · 922 阅读 · 0 评论 -
单词拆分
给定一个非空字符串s和一个包含非空单词列表的字典wordDict,判定s是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "leetcode" 可...原创 2019-06-14 11:24:11 · 249 阅读 · 0 评论 -
单词拆分 II
单词拆分 II给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。返回所有这些可能的句子。说明:分隔时可以重复使用字典中的单词。你可以假设字典中没有重复的单词。示例 1:输入:s = "catsanddog"wordDict = ["cat", "cats", "and", "sand",...原创 2019-06-14 13:14:17 · 332 阅读 · 0 评论 -
旋转数组
这个题的一种解法挺有意思,记录一下。给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]研究了半天,发现...原创 2019-06-26 19:34:23 · 122 阅读 · 0 评论 -
只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?其它出现两次,某元素只出现一次,看到这个第一反应就是异或。因为 a^b^b = a;所以只需要遍历异或,最后的结果就是只出现一次的元素 int singleNumber(vector<...原创 2019-06-26 19:42:29 · 146 阅读 · 0 评论 -
寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组nums1 和nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为O(log(m + n))。你可以假设nums1和nums2不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中...原创 2019-07-12 18:44:06 · 234 阅读 · 0 评论 -
最长回文串(马拉车算法)
/*最长回文子串(Manacher算法 马拉车算法-_-) 马拉车算法需要计算以每个字符为中心的回文串半径。并记录最右边界 马拉车算法基于这样一个事实,从回文串的中心到两边是对称的,意味着以两边对称的字符为中心的回文串半径相等(在不超过最右边界的情况下,如果超出就需要扩展搜索) */ public String longestPalindr...原创 2019-07-12 20:28:19 · 378 阅读 · 0 评论 -
完全平方数
给定正整数n,找到若干个完全平方数(比如1, 4, 9, 16, ...)使得它们的和等于n。你需要让组成和的完全平方数的个数最少。示例1:输入: n = 12输出: 3 解释: 12 = 4 + 4 + 4.示例 2:输入: n = 13输出: 2解释: 13 = 4 + 9.凑数是比较典型的广度搜索问题。 public int numSqua...原创 2019-08-21 14:43:24 · 267 阅读 · 0 评论