Leetcode练习
坛主要乖
无风不起浪
展开
-
LeetCode(4)每日一练:移除元素(关键词:快慢指针)
LeetCode(4)每日一练:移除元素(关键词:快慢指针)1、题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。2、题解思路解法1:双指针法(快慢指针法),通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。解法2:使用STL中的remove函数,remove(first,原创 2020-10-27 15:54:41 · 121 阅读 · 0 评论 -
Leetcode(3)每日一练:判断有效地括号
一、题意描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串满足:(1)左括号必须用相同类型的右括号闭合。(2)左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。二、题解思路(1)若遇到左括号入栈,遇到右括号时将对应栈顶左括号出栈,则遍历完所有括号后 stack 仍然为空;(2)建立哈希表m,构建左右括号对应关系;(3)建立栈stack,遍历字符串s,根据栈的先入后出的特点进行判断,如果 c 是左括号,则入栈 stack.p原创 2020-10-16 15:51:54 · 165 阅读 · 0 评论 -
Leetcode(2)每日一练:罗马数字转整数
Leetcode(2)每日一练:罗马数字转整数题目描述:解题思路:1、先分析输入字符串s的特点:输入字符串变量s中的每一个元素必定代表一个数字,最终的结果就由这些数字加减而来;2、利用unordered_map的键值对把每种字符代表的数字大小对应起来;判断前后对应的数字用加法还是减法:分析规律得知,如果前一个字符代表的字符小于后面那个字符,则用减法;如果是等于或大于就是加法;4、在判断的外层加上for循环遍历整个s。C++代码:class Solution {public: in原创 2020-09-18 21:16:00 · 159 阅读 · 0 评论 -
Leetcode每日一练之判断一个整数是否是回文数
Leetcode(1) ## 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解题思路:1、首先,根据输入数值的符号进行判断,如果为负数,则直接返回false,反之,继续下一步;2、然后,根据需要倒序,需要获取输入数值的个位数,然后进行逆序表达,再到十位数进行逆序表达,依次类推,直到获取完输入数值的最高位。3、代码如下:#include<bits/stdc++.h> //万能头文件class Solution{public: bool i原创 2020-09-17 20:41:37 · 242 阅读 · 0 评论