算法
guoxin1215
西电青岛研究院研电子信息专业究生一名,记录学习过程,分享学习心得。
展开
-
算法第七题:获取生成数组中的最大值 2021.8.23
一、描述给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值。二、代码def getMaximumGenerated(self, n: int) ->原创 2021-08-24 20:58:26 · 141 阅读 · 0 评论 -
算法第六题:压缩字符串 2021-08-21
一、题目给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到的字符串 s 不应该直接返回 ,需要转储到字符数组 chars 中。需要注意的是,如果组长度为 10 或 10 以上,则在 chars 数组中会被拆分为多个字符。请在 修改完输入数组后 ,返回该数组的新长度。你必须设计并实现一个只使用常量额外空间的算法来解决此问题原创 2021-08-24 20:54:56 · 486 阅读 · 0 评论 -
算法第五题:反转字符串 2021-08-19
一、翻转字符串中的所有元音字符串,其中包括大小的原因字母。翻转字符串的算法用到双指针这一思想,第一个指针指向找到的串首的第一个元音字符,第二个指针指向串尾的第一个元音字符,然后逐渐向中间靠。def reverseVowels(self, s: str) -> str: Str={'a','A','e','E','i','I','o','O','u','U'} s=list(s) i,j=0,len(s)-1 while i<j:原创 2021-08-24 20:36:08 · 180 阅读 · 0 评论 -
算法第四题:学生出勤记录情况统计 2021-08-19
力扣学生出勤记录一、问题描述可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:‘A’:Absent,缺勤‘L’:Late,迟到‘P’:Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:按总出勤 计,学生缺勤(‘A’)严格 少于两天。学生不会存在 连续 3 天或 连续 3 天以上的迟到(‘L’)记录。给你一个整数 n ,表示出勤记录的长度(次数)。请你返回记录长度为 n 时,可能获得出勤奖励的记录原创 2021-08-19 19:48:27 · 301 阅读 · 0 评论 -
算法第三题:学生出勤记录 2021-08-17
学生出勤记录一、题目描述给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤、迟到、到场)。记录中只含下面三种字符:‘A’:Absent,缺勤‘L’:Late,迟到‘P’:Present,到场如果学生能够 同时 满足下面两个条件,则可以获得出勤奖励:按 总出勤 计,学生缺勤(‘A’)严格 少于两天。学生 不会 存在 连续 3 天或 3 天以上的迟到(‘L’)记录。如果学生可以获得出勤奖励,返回 true ;否则,返回 false 。二、自己的解题思路与代原创 2021-08-17 16:57:37 · 226 阅读 · 0 评论 -
算法第二题:只出现一次的数字 2021-08-16
2.只出现一次的数字一、问题描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?二、代码实现hashtable = {} for num in nums: if hashtable.get(num): hashtable[num] = 2 else: ha原创 2021-08-24 20:08:01 · 96 阅读 · 0 评论 -
算法第一题:两数之和 2021-08-16
1.力扣算法两数之和1.算法描述给定一个整数数组nums和一个目标数值target,请在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。假设每种输入只会对应一个答案,但是数组中同一个元素在答案里不能重复出现。可以按任意顺序返回答案。2.示例输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。3.思考首先想到暴力破解法,计算任意两数之和,然后判断是否等于target。原创 2021-08-16 21:46:40 · 88 阅读 · 0 评论