![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法练习题笔记和心得
Gamma and Beta
这个作者很懒,什么都没留下…
展开
-
整数反转python实现
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。这道题的核心在于如将整数拆分开,又应该如何将分开的整数重组。首先可以使用取余的操作将一个整数从个位数开始拆分。每一次整数的合并都比上一次计算结果大10倍。所以我们可以根据这个规律总结出一下公式,用于合并拆分下来的整数。假设输入的整数为 num = 123,首先创建两个中间变量原创 2021-09-14 20:10:35 · 1108 阅读 · 0 评论 -
判断是否存在重复的元素
给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。这道题不叫简单,只是让判断是否有重复的元素。可以使用集合的思想。如果一个列表去重前后的长度不一样长,那就一定是有重复的元素,相反就没有。所以代码如下,只有一行:def Solution(nums): return len(nums) != len(set(nums))...原创 2021-09-12 21:02:16 · 375 阅读 · 0 评论 -
买卖股票的最佳时机
题目:给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。题目看上去很像动态规划算法,但是这道题可以使用其他的方法来求解。利益最大化在这里可以理解成,只要第n+1天的价格高于第n天的价格,就可以卖出,然后再买进。所以可以遍历给出的列表,若列表的 n+1 位大于第n位,就可以将他们的插值作为利润,并进行累加。原创 2021-09-12 20:18:00 · 99 阅读 · 0 评论 -
删除排序数组中的重复项
初级算法训练题笔记与理解01题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。实例1:输入:nums = [1,1,2]输出:2, nums = [1,2]实例2:输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]主要的思路是使用双指针,实则是将不同的元素已到了列表的前面。假设定义两个指针,一个为左指针,一个为右指针。右指针的主要任务是用于遍历列表。当右指针指到列原创 2021-09-12 19:56:14 · 117 阅读 · 0 评论