力扣
专注嗑糖一百年
这个作者很懒,什么都没留下…
展开
-
两个数组的交集 II
题目:给定两个数组,编写一个函数来计算它们的交集。解:思路:方法一:使用哈希表。始终使前一个数组为长度小的,后一个为数组长度大的。外层遍历小数组,内层遍历大数组。判断二者元素的值,分为三种情况:1、外层 != 内层,不做任何操作,继续遍历2、外层 = 内层,且不存在哈希表中,将该元素添加到哈希表中,为键,对应的值为 1,结束此次内层循环3、外层 = 内层,且已经存在哈希表中,因为此时内层元素是重复遍历,应该跳过重复该元素的次数即哈希表中该元素的值,4、外层 = 内层,且已经存在哈希表中原创 2021-04-02 23:34:42 · 168 阅读 · 0 评论 -
只出现一次的数字
题目:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。解:思路:方法一:先将数组进行排序,然后进行遍历,两个相同元素为一组,同时判断前后的元素是否一致,如果某个元素并不能和其后一个组成一组,则返回该值。代码:int singleNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); // 先排序 int k = 0; int ta原创 2021-04-02 22:50:55 · 114 阅读 · 0 评论 -
存在重复元素
题目:给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。解:思路:方法一:使用额外空间存储数组中的元素,如果已存在说明重复,不存在,就添加进去。代码:bool containsDuplicate(vector<int>& nums) { vector<int>temp; vector<int>::iterator itnum; fo原创 2021-04-02 21:47:03 · 160 阅读 · 0 评论 -
力扣:旋转数组(c++)
题目:给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数。解:思路:关键点确定当前元素要去的位置。确定好要去的位置,将该位置上的元素备份(tag = 该位置的元素),然后替换成当前元素。此时被替换的位置变成了当前位置(否则被替换位置上的元素tag数据会丢失),且要进行移动的数为tag,继续进行要去的位置的查找然后替换。直到全部位置都被替换过。因为每个位置有且只有一次被替换,所以遍历总长度或者替换总次数应该=数组长度。0 -> 3 3-> 6 ...原创 2021-03-01 17:35:25 · 407 阅读 · 0 评论 -
力扣:买卖股票的最佳时机 II(c++)
题目:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。解:思路:关键点是找出哪一天买进和哪一天卖出。只有当下一天比今天的股价高,今天的才可买入,下一天的股价小于今天的,今天的才可卖出。又因为得先买入才可卖出,呈现出先上升后下降的趋势,进行一次买入和卖出的操作,取当次交易利润最大化。在将整个股价分成若干个这样的.原创 2021-03-01 16:22:21 · 245 阅读 · 0 评论 -
力扣:删除排序数组中的重复项(c++)
题目:给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。解:思路:使用双指针,一个指向待比较元素(慢指针),一个指向当前元素(快)...原创 2021-03-01 15:40:08 · 571 阅读 · 0 评论 -
力扣8.判断整数是否是回文数
采用未将数字转换成字符串的形式进行判断测试情况:执行用时: 8 ms内存消耗: 5.7 MB代码// 将测试数字进行反转,判断是否与原始数字相等class Solution {public: bool isPalindrome(int x) { if(x < 0) return false; if(x == 0) return true; int num=0; num = x; long rnum=0; while(num) // 进行原创 2020-09-29 22:20:22 · 134 阅读 · 0 评论 -
力扣7.有符号整数反转
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。结果:执行用时: 0 ms内存消耗: 5.7 MB代码#include<stdlib.h>#include <string.h>class Solution {public: int reverse(int x) { int num=0; char oldData[100],newData; // 转换成字符串进行操作原创 2020-09-29 22:17:06 · 277 阅读 · 0 评论