Leetcode解题笔记
Leetcode题库的编程轨迹记录
墨飏韶年
leetcode:https://leetcode-cn.com/problemset/all/
展开
-
leetcode存在重复
#include<stdio.h> typedef int bool; #define TRUE 1 #define FALSE 0 bool containsDuplicate(int* nums, int numsSize); int main() { int a[] = {1,2,3,1}; int length = sizeof(a)/sizeof(a[0]); ...原创 2018-09-07 19:20:24 · 138 阅读 · 0 评论 -
leetcode 移动零(C实现)
void moveZeroes(int* nums, int numsSize) { if (numsSize == 0){ return 0; } int k = 0; for(int i=0;i<numsSize;i++){ if(nums[i] != 0) { nums[k++] = nums[i]; } } while(k < n...原创 2018-09-03 10:44:45 · 255 阅读 · 0 评论 -
leetcode 从排序数组中删除重复项
题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 #include<stdio.h> int removeDuplicates(int *nums,int numSize){ if (numSize == 0) ...原创 2018-08-30 11:46:12 · 177 阅读 · 0 评论 -
leetcode 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 解题思路: 异或运算的性质。异或运算相同为0,相异为1 #include<stdio.h> int FindAppearOnce(int arr[], int len); int main(){...原创 2018-08-31 17:06:46 · 198 阅读 · 0 评论 -
7. 反转整数
//给定一个 32 位有符号整数,将整数中的数字进行反转。 //示例 1: //输入: 123 //输出: 321 // 示例 2: //输入: -123 //输出: -321 //示例 3: //输入: 120 //输出: 21 //注意: //假设我们的环境只能存储 32 位有符号整数,其数值范围是 [?231, 231 ? 1]。根据这个假设,如果反转后的整数溢出,则返回 0 #in...原创 2018-08-07 10:13:13 · 108 阅读 · 0 评论 -
6. Z字形变换(python3实现)
# 将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数: # P A H N # A P L S I I G # Y I R # 之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR" # 实现一个将字符串进行指定行数变换的函数: # string convert(string s, int numRows); # 示例 1: # 输入: s = "P...原创 2018-08-06 13:47:57 · 978 阅读 · 0 评论 -
5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad" 输出: "bab" 注意: "aba"也是一个有效答案。 示例 2:输入: "cbbd" 输出: "bb" class Solution { public: string longestPalindrome(string s) { int len =...原创 2018-07-12 09:47:13 · 183 阅读 · 0 评论 -
排序算法的总结
外排序:需要在内外存之间多次交换数据才能进行内排序: 插入类排序 直接插入排序希尔排序选择类排序 简单选择排序堆排序交换类排序 冒泡排序快速排序归并类排序 归并排序排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性冒泡排序 O(n^2) O(n) O(n^2) O(1) 稳定简单选择排序 O(n^2) O(n^2) O(n^2) O(1) 稳定直接插入排序 O...原创 2018-07-09 09:55:40 · 252 阅读 · 0 评论 -
1. 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] /** * Note: The returned array must be malloced, ass...原创 2018-06-21 15:28:47 · 140 阅读 · 0 评论 -
3. 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。class Solution:原创 2018-07-04 16:05:09 · 141 阅读 · 0 评论 -
4. 两个排序数组的中位数
题目描述提示帮助提交记录社区讨论阅读解答随机一题给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 。请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。示例 1:nums1 = [1, 3] nums2 = [2] 中位数是 2.0 示例 2:nums1 = [1, 2] nums2 = [3, 4] 中位数是 (2 + 3)/2 = 2.5 ...原创 2018-07-04 14:59:02 · 143 阅读 · 0 评论