编程大赛
leoufung
Linux Kernel,Virtualization
展开
-
只出现一次的数字 II -- C语言
需求给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例2:输入: [0,1,0,1,0,1,99]输出: 99思路除了想到了hashmap,没有想到其他方法。本来想用 ^ 的方式,但是不知道...原创 2020-03-12 21:04:20 · 382 阅读 · 0 评论 -
数组中数字出现的次数 -- C语言
需求一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2]限制:...原创 2020-03-10 20:46:52 · 2759 阅读 · 0 评论 -
编辑距离 -- C语言
需求给定两个单词word1 和word2,计算出将word1转换成word2 所使用的最少操作数。你可以对一个单词进行如下三种操作:插入一个字符删除一个字符替换一个字符示例1:输入: word1 = "horse", word2 = "ros"输出: 3解释:horse -> rorse (将 'h' 替换为 'r')ro...原创 2020-03-10 19:21:55 · 413 阅读 · 0 评论 -
最长公共子序列 -- C语言
需求给定两个字符串text1 和text2,返回这两个字符串的最长公共子序列。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。...原创 2020-03-09 14:28:11 · 4003 阅读 · 1 评论 -
统计不同回文子字符串 -- C语言
需求给定一个字符串 S,找出 S 中不同的非空回文子序列个数,并返回该数字与 10^9 + 7 的模。通过从 S 中删除 0 个或多个字符来获得子字符序列。如果一个字符序列与它反转后的字符序列一致,那么它是回文字符序列。如果对于某个i,A_i != B_i,那么A_1, A_2, ... 和B_1, B_2, ... 这两个字符序列是不同的。 示例 1:...原创 2020-03-06 12:00:13 · 2560 阅读 · 0 评论 -
最短回文串 -- C语言
需求给定一个字符串s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例1:输入:"aacecaaa"输出:"aaacecaaa"示例2:输入:"abcd"输出:"dcbabcd"思路要找到最短的添加内容,就相当于从字符串位置0开始,查找到最长的回文串,最长回文串后面的部...原创 2020-03-04 21:06:54 · 2692 阅读 · 2 评论 -
回文对 -- C语言
需求给定一组唯一的单词,找出所有不同的索引对(i,j),使得列表中的两个单词,words[i]+words[j],可拼接成回文串。示例1:输入:["abcd","dcba","lls","s","sssll"]输出:[[0,1],[1,0],[3,2],[2,4]]解释:可拼接成的回文串为["dcbaabcd","abcddcba",...原创 2020-03-04 17:41:41 · 501 阅读 · 0 评论 -
最长回文子串,中心扩展法 -- C语言
需求给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"思路因为是找回文子串,所以使用中心扩展法,中心扩展有两种,一种是以单个字符[i,i]为中心,一个是以双个字符[i, i...原创 2020-03-02 20:01:19 · 481 阅读 · 0 评论 -
回文子串 -- C语言
需求给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a", "aa", "aa"...原创 2020-03-02 18:08:11 · 1790 阅读 · 0 评论 -
最长回文子序列 -- C语言
需求给定一个字符串s,找到其中最长的回文子序列。可以假设s的最大长度为1000。示例 1:输入:"bbbab"输出:4一个可能的最长回文子序列为 "bbbb"。示例 2:输入:"cbbd"输出:2一个可能的最长回文子序列为 "bb"。思路状态f[i][j] 表示 s 的第 i 个字符到第 j 个字符组成的子...原创 2020-03-01 00:06:51 · 1015 阅读 · 0 评论 -
最长回文子串 -- C语言
需求给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"代码实现/* * 需求 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设s 的最大长度为 1...原创 2020-02-29 20:15:23 · 764 阅读 · 0 评论 -
只出现一次的数字 -- C语言
需求给定一个整数数组nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]知识讲解(这部分转自leetcode,详细理解见代码中的注释)使用异或运算可以帮助我们消除出现两次的数字;我们计算bitmask ^= x,则bitmask留下的就是出现奇数次的...原创 2020-02-29 18:36:20 · 1892 阅读 · 1 评论 -
螺旋打印矩阵 -- C语言
需求给定一个包含m x n个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例1:输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例2:输入:[ [1, 2, 3, 4], [5, 6, 7, 8],...原创 2020-02-28 22:31:27 · 1544 阅读 · 0 评论 -
最大子序和 -- C语言
需求描述给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解思路1. 分两个循...原创 2020-02-28 16:34:35 · 810 阅读 · 0 评论