![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode Practice
scarftree
这个作者很懒,什么都没留下…
展开
-
leetcode 1st problem two sum
去年未上传的代码, 问题描述 一个vector容器中,假定只有一个解,使得和为0,找出这两个数 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { for(int i = 0;i<=nums.size()-2;i++) ...原创 2018-02-19 19:25:43 · 152 阅读 · 0 评论 -
leetcode 2nd problem add two numbers
1.读题 a.倒序的两个链表,均不为空。 b.数据格式除了0以外开头不能为0。 2.思路 和数据结构选择的大作业类似,大整数加减,不过逆序无需构造循环链表。 3.反思 解题步骤清楚,但是变量的放置位置很有讲究,本来想对个位数做统一处理,发现逻辑上就有问题,因为,涉及到: a.个位数加个位数,可能不进位的情况。 b.统一的流程只能是有一者或者两者指针移动的循环控制流,两者唯一确定的是...原创 2018-04-15 22:09:53 · 115 阅读 · 0 评论 -
leectcode 3rd Longest Substring Without Repeating Characters
1.题意 找出无重复字母的最长子序列 2.思路 用哈希表维护序列 left表示无重复子串的前一个位置 table的值表示当前字母出现的而最后一个序列位置,从1开始计数 条件很精妙 3.反思 起初,自己的思路很简单,用循环比较,虽然编过了,但没有ac,处理了 1.空串 2.特殊字符(实则不能删) 等情况 但是timeout 要学会多用表等数据结构处理问题,穷举法很不理想 ...原创 2018-04-22 23:11:56 · 126 阅读 · 0 评论 -
leetcode 5st Longest Palindromic Substring
1.题意 寻找输入字符串中的最长回文序列 2.思路比较 (1)暴力破解,从头开始首尾两下标向中间移动,比较两端字符是否相同,长度控制一层循环,字符串起始位控制一层循环,比较两端字符是否相同一层循环,时间复杂度为O(n^3)代码不ac (2)以每个字符为中心向两边扩散比较,去除长度控制这层循环,与两端标记一同控制, 时间复杂度为O(n^2) 参考代码如下: class Solution...原创 2018-09-12 23:23:08 · 119 阅读 · 0 评论 -
leecode 4st Median of Two Sorted Arrays
1.题意 输入为两个数字数组,找出其中的中位数 要求时间复杂度为log(m+n) 2.思路 先把两个数组放入一个容器中,而后找中位数, 如果容器size为奇数,则是中位数本身,偶数,则是中间两数字的平均值 使用堆或者快速排序还要重新造轮子,搜到一个很实用的stl方法 找数组或容器中的第n大的方法 std::nth_element(RandomIt first, RandomIt n...原创 2018-09-10 23:26:31 · 131 阅读 · 0 评论 -
leetcode 6st ZigZag Conversion
1.题意 输入:字符串,行数 输出:N字形镜像旋转后的字符串 2.思路 第一反应:一列列排,中间每一列只有一个字符,找空格规律 参考方案:找同一行字符串间的间隔规律, 首尾字符间差值为(2n-2) 中间行字符差值为X =(2n-2)-2i,(2n-2)-X, (2*n-2)-X… 最后将字符串数组串起来组装成新的字符串 3.反思 思维还是太局限,应该关注输出是什么,着眼于输出于输入的关系,从其中找...原创 2019-01-09 22:16:39 · 106 阅读 · 0 评论