
LeetCode
小太阳啊^_^
这个作者很懒,什么都没留下…
展开
-
LeetCode初级算法-字符串-2
题目:整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21...原创 2019-02-01 12:07:51 · 152 阅读 · 0 评论 -
LeetCode初级算法-字符串-7
题目:实现strStr()给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bb...原创 2019-02-08 19:12:30 · 190 阅读 · 0 评论 -
LeetCode初级算法-字符串-8
题目:报数报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。...原创 2019-02-08 21:48:10 · 207 阅读 · 0 评论 -
LeetCode初级算法-字符串-9
题目:最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。C语言解题char* longe...原创 2019-02-09 15:54:03 · 156 阅读 · 0 评论 -
LeetCode初级算法-链表-1
题目:删除链表中的节点请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> ...原创 2019-02-11 17:27:30 · 198 阅读 · 0 评论 -
LeetCode初级算法-链表-2
题目:删除链表的倒数第N个节点给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?C语言解题/** * Definition原创 2019-02-11 18:21:54 · 155 阅读 · 0 评论 -
LeetCode初级算法-链表-3
题目:反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题?C语言解题解法一:递归/** * Definition for singly-linked list. * struct L...原创 2019-02-12 14:10:04 · 126 阅读 · 0 评论 -
LeetCode初级算法-链表-4
题目:合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4C语言解题:解法一:struct ListNode* mergeTwoLists(struct ListNode* l1, stru...原创 2019-02-12 14:41:47 · 143 阅读 · 0 评论 -
LeetCode初级算法-链表-5
题目:回文链表请判断一个链表是否为回文链表。示例 1:输入: 1->2输出: false示例 2:输入: 1->2->2->1输出: true进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?C语言解题bool isPalindrome(struct ListNode* head) { int len=0; ...原创 2019-02-12 20:58:09 · 232 阅读 · 0 评论 -
LeetCode初级算法-链表-6
题目:环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = ...原创 2019-02-12 21:30:21 · 154 阅读 · 0 评论 -
LeetCode初级算法-树-1
题目:二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。int maxDepth(...原创 2019-02-12 21:50:03 · 149 阅读 · 0 评论 -
LeetCode初级算法-树-2
题目:验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3 输出: true示例 2:输入: 5 / \ 1 4...原创 2019-02-13 14:45:35 · 138 阅读 · 0 评论 -
LeetCode初级算法-树-3
题目:对称二叉树给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 ==[1,2,2,3,4,4,3]==是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ ...原创 2019-02-13 15:28:53 · 159 阅读 · 0 评论 -
LeetCode初级算法-排序和搜索-1
题目:合并两个有序数组给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m +n)来保存 nums2 中的元素。示例:输入: nums1 = [1,2,3,0,0,0], m...原创 2019-02-13 20:48:32 · 186 阅读 · 0 评论 -
LeetCode初级算法-字符串-6
题目:字符串转换整数 (atoi)请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可...原创 2019-02-04 12:03:37 · 140 阅读 · 0 评论 -
LeetCode初级算法-字符串-5
题目:验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true示例 2:输入: “race a car”输出: falseC语言解题bool isPalindrome(char* s) { ...原创 2019-02-03 20:49:43 · 161 阅读 · 0 评论 -
LeetCode初级算法-字符串-4
题目:有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否...原创 2019-02-02 13:24:57 · 200 阅读 · 0 评论 -
LeetCode初级算法-字符串-1
题目:反转字符串C语言解题void reverseString(char* s, int sSize) { char c; for (int i = 0; i < sSize / 2; i++) { c = s[i]; s[i] = s[sSize - i - 1]; s[sSize - i - 1] = c; }}遍历一半字符串,收尾字符两两交换。...原创 2019-02-01 09:54:13 · 159 阅读 · 0 评论 -
LeetCode初级算法-数组-11
题目:旋转图像C语言解题void rotate(int** matrix, int matrixRowSize, int *matrixColSizes) { int temp; for (int i = 0; i < matrixRowSize; i++) { for (int j = i; j < *matrixColSizes; j++) { tem...原创 2019-01-31 19:37:07 · 201 阅读 · 0 评论 -
LeetCode初级算法-数组-10
题目:有效的数独示例1:输入:[ ["5","3",".",".","7",".",&原创 2019-01-31 18:36:22 · 210 阅读 · 0 评论 -
LeetCode初级算法-数组-9
题目:两数之和C语言解题:int* twoSum(int* nums, int numsSize, int target) { int *two = (int*)malloc(sizeof(int)*2); int i, j; for (i = 0; i < numsSize; i++) { for (j = i + 1; j < numsSize; j++) {...原创 2019-01-30 12:26:43 · 124 阅读 · 0 评论 -
LeetCode初级算法-数组-8
题目:移动零C语言解题void moveZeroes(int* nums, int numsSize) { int notzero = 0; for (int i = 0; i < numsSize; i++) { if (nums[i] != 0) { nums[notzero] = nums[i]; notzero++; } } for (int ...原创 2019-01-30 12:07:57 · 139 阅读 · 0 评论 -
LeetCode初级算法-数组-7
题目:加一C语言解题int* plusOne(int* digits, int digitsSize, int* returnSize) { int *re = (int*)malloc(sizeof(int)*(digitsSize + 1)); int flag = 1; int temp; *returnSize = 0; //plusOne for (int i = di...原创 2019-01-29 14:42:19 · 193 阅读 · 0 评论 -
LeetCode初级算法-数组-6
题目:两个数组的交集 IIC语言解题int* intersect(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) { int min,temp; *returnSize = 0; if (nums1Size < nums2Size) min = nums1Size; else m...原创 2019-01-29 12:58:31 · 255 阅读 · 0 评论 -
LeetCode初级算法-数组-5
题目:只出现一次的数字C语言解题int singleNumber(int* nums, int numsSize) { int num = 0; for (int i = 0; i < numsSize; i++) { num ^= nums[i]; } return num;}使用异或,每个数字出现两次,相同的数字异或为0,最后剩下的就是只出现了一次的数字。...原创 2019-01-29 12:56:59 · 159 阅读 · 0 评论 -
LeetCode初级算法-数组-4
题目:存在重复C语言解题bool containsDuplicate(int* nums, int numsSize) { for (int i = 0; i < numsSize - 1; i++) { for (int j = i + 1; j < numsSize; j++) { if (nums[i] == nums[j]) return tr...原创 2019-01-29 12:55:15 · 162 阅读 · 0 评论 -
LeetCode初级算法-数组-3
题目:旋转数组C语言解题方案1void rotate(int* nums, int numsSize, int k) { int temp; int i, j; for (i = 0; i < k; i++) { temp = nums[numsSize - 1]; for (j = numsSize - 1; j > 0; j--) { nums[j...原创 2019-01-29 12:53:43 · 209 阅读 · 0 评论 -
LeetCode初级算法-数组-2
题目:买卖股票的最佳时机 IIC语言解题int maxProfit(int* prices, int pricesSize) { int i, profit=0; if (pricesSize == 0) { return 0; } for (i = 1; i < pricesSize; i++) { if (prices[i] > prices[i - 1]...原创 2019-01-29 12:50:40 · 230 阅读 · 0 评论 -
LeetCode初级算法-数组-1
题目:C语言解题int removeDuplicates(int* nums, int numsSize) { if (numsSize == 0) { return 0; } int length = 1; for (int i = 0; i < numsSize; i++) { if (nums[i] != nums[length - 1]) { nums[l...原创 2019-01-29 12:46:11 · 122 阅读 · 0 评论 -
LeetCode初级算法-字符串-3
题目:字符串中的第一个唯一字符给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.注意事项:您可以假定该字符串只包含小写字母。C语言解题int firstUniqChar(char* s) { int len = strlen(s); int ...原创 2019-02-02 12:49:09 · 171 阅读 · 0 评论 -
LeetCode初级算法-排序和搜索-2
题目:第一个错误的版本你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是...原创 2019-02-13 21:14:30 · 151 阅读 · 0 评论