分类: leetcode

4 篇文章

刷题周记(4)——矩阵总结
本周完成了leetcode热题100中的矩阵部分,来做个总结。 总的来说,矩阵部分的题目均较为简单。 列几个我在做题过程中使用的技巧和可能性:第一,矩阵可以从外围一层层向内部递归;第二,矩阵的每一个位置,都可以作为一个“存储”,从而可以尽量不使用更多的空间,而是利用原地的运算;第三,矩阵的一些旋转可以等价于转置和翻转等的结合;第四,可以列出转换的式…
刷题周记(3)——15.三数之和
本周,着重完成双指针部分的内容,今天结合15.三数之和,整理一下双指针能解决的问题。 首先,双指针能解决某些交换问题,此类问题较为灵活,应针对题目思考解决,例如283.移动零,这道题利用双指针将非零值换到数组左侧。 其次,双指针能结合排序,解决数组中两数相加为某个定值的问题——将此类问题的规模从O(n2)转化为O(nlogn),包括15.三数之和也…
刷题周记(2)——128.最长连续序列
上周刷完了leetcode“热题100”题单中的所有简单题,完成了对算法与数据结构的基础复习,接下来预计按照每天至少1道题的节奏,对leetcode“热题100”题单中的题目进行完成。 128.最长连续序列 题目要求从一个未排序的数组中,找到一个最长的连续序列,自然的想法是,以数组中的每个元素为起始,分别判断以其为起始的最长序列的长度。于是,写出了…
刷题周记(1)——49.字母异位词分组
思路分析:首先,思考如何判断“异位词”,直观的想到,将string内部按照字母序排序,之后便可以直接对比,排序后相等的string就是异位词。其次,想到可以利用哈希表来进行字符串vector的存储(即一个排序成功的key,对应一组string) 49.字母异位词分组 class Solution { public: vector<vector…