
力扣题目
扎克蕉
这个作者很懒,什么都没留下…
展开
-
LeetCode-7.整数反转 取模反转法与字符串法
题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-integer原创 2020-09-18 22:13:00 · 255 阅读 · 0 评论 -
LeetCode-6.Z 字形变换 - 消费补偿算法
题目将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例:输入: s = “LEETCODEISHIRING”, numRows = 3输出: “LCIRETOESI原创 2020-09-14 22:07:03 · 220 阅读 · 0 评论 -
LeetCode-5.最长回文子串 中心扩散法
题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。暴力法:获取所有字符串组合,并判断是否回文,时间复杂度达到了O(n³)中心扩散法:时间复杂度O(n²),且十分简单。总体思想为遍历一遍字符串,对每个字符进行左右扩散来判断是否存在回文,并记录最长回文长度。下面展示C++实现中心扩散法的代码#include <iostream>#include &l原创 2020-07-21 17:31:43 · 197 阅读 · 0 评论 -
[较难]LeetCode-4.寻找两个正序数组的中位数 利用数组扩充和二分法切割思想实现
题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 :nums1 = [1, 3]nums2 = [2]则中位数是 2.0当我看到题目时,首先想到最简单粗暴的方法是合并数组然后进行排序,但是这样最快也只能达到O(m+n)的级别,不符合题目要求。参考大神的题解后,写一些我的感想。首先利用数组扩充的思想,将两个数原创 2020-07-19 23:33:53 · 569 阅读 · 0 评论 -
LeetCode-3.无重复字符的最长子串 利用一个整形数组+ASCII码实现滑动窗口
先看题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 :输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。分析如下方案一:从头到尾用两层循环比对字符,时间复杂度O(n²),不推荐方案二:我想到了利用一个整形数组,下标对应字符的ASCII码,然后值存字符最新出现的数组位置。这里我用len代表当前累计长度,i为字符在字符数组中的位置,tag为当原创 2020-07-18 14:22:25 · 165 阅读 · 0 评论 -
LeetCode-2.两数相加 使用链表加法实现
先看题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807方案一:把链表转换为数字相加,再形成链表,这样做的问题是系统原创 2020-07-18 09:26:46 · 226 阅读 · 0 评论 -
LeetCode-1.两数之和 C++用暴力法与哈希表法分别实现
力扣第一题话不多说,直接贴代码#include <iostream>#include <vector>#include <map>using namespace std;/** * LeetCode * 1.两数之和 * https://leetcode-cn.com/u/banana798/ */class Solution {public: //暴力遍历法 时间复杂度o(n²) vector<int> twoSum(原创 2020-07-16 19:04:06 · 271 阅读 · 0 评论