- 博客(116)
- 收藏
- 关注
原创 牛客网学习笔记——中等题们
HJ63 DNA序列def find(s): re = 0 for i in range(len(s)): if s[i] == 'G' or s[i] == 'C': re += 1 return re while True: try: s = input() n = int(input()) re = 0 res = '' for i
2022-03-29 11:11:28 284
原创 牛客网学习笔记——中等题们(字符串)
HJ27 查找兄弟单词l = list(input().split())list = l[1:-2]k = int(l[-1])k2 = l[-2]re = []for i in range(len(list)): if list[i] == k2 or len(k2) != len(list[i]): continue elif sorted(list[i]) == sorted(k2): re.append(list[i])print(l
2022-03-25 17:39:58 240
原创 牛客网学习笔记——中等题们(字符串)
HJ20 密码验证合格程序def check(s): if len(s) <= 8: return 0 la =lA = l1 = l_ = 0 for i in range(len(s)): if 'a' <= s[i] <= 'z': la = 1 elif 'A' <= s[i] <= 'Z': lA = 1 elif '0' &l
2022-03-24 16:08:58 540
原创 牛客网学习笔记——中等题们(背包问题)
HJ16 购物单加了一个条件,必须要有主件才能采购附件,先把主件和附件组合在一起,再按照背包法来处理n,m = map(int,input().split())zj = {}fj = {}for i in range(m): q, v, z = map(int, input().split()) if z == 0: id = i+ 1 zj[id] = [q, v] else: if z in fj:
2022-03-24 11:53:52 263
原创 牛客网学习笔记——中等题们
我果然还是太菜了HJ17 坐标移动描述开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动。从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文件里面。输入:合法坐标为A(或者D或者W或者S) + 数字(两位以内)坐标之间以;分隔。非法坐标点需要进行丢弃。如AA10; A1A; %; YAD; 等。下面是一个简单的例子 如:A10;S20;W10;D30;X;A1A;B10A11;;A10;处理过程:起点(0,0)A1
2022-03-23 18:53:22 282
原创 牛客网学习笔记——简单题们(三)
边写题边感受世界的参差,我也不知道自己在干什么了,简单题都这样了还有机会过笔试吗?HJ80 整型数组合并描述题目标题:将两个整型数组按照升序合并,并且过滤掉重复数组元素。输出时相邻两数之间没有空格。输入描述:输入说明,按下列顺序输入:1 输入第一个数组的个数2 输入第一个数组的数值3 输入第二个数组的个数4 输入第二个数组的数值输出描述:输出合并之后的数组示例1输入: 3 1 2 5 4 -1 0 3 2输出: -101235我写的,明明用了排序函数,
2022-03-23 12:08:23 1495
原创 牛客网学习笔记——简单题们(二)
HJ22 汽水瓶描述某商店规定:三个空汽水瓶可以换一瓶汽水,允许向老板借空汽水瓶(但是必须要归还)。小张手上有n个空汽水瓶,她想知道自己最多可以喝到多少瓶汽水。数据范围:输入的正整数满足 1 \le n \le 100 \1≤n≤100注意:本题存在多组输入。输入的 0 表示输入结束,并不用输出结果。输入描述:输入文件最多包含 10 组测试数据,每个数据占一行,仅包含一个正整数 n( 1<=n<=100 ),表示小张手上的空汽水瓶数。n=0 表示输入结束,你的程序不应当处理这一行。
2022-03-22 18:23:42 1268
原创 牛客网学习笔记——简单题们(一)
记一下忘记的python内置函数,方便之后复习啊!!!!HJ5 进制转换描述写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。输入描述:输入一个十六进制的数值字符串。输出描述:输出该数值的十进制字符串。不同组的测试用例用\n隔开。示例1输入:0xAA输出:170number = input()[2:]dic = {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9,'A':10,'B':11,'C':12,
2022-03-22 15:37:18 1291
原创 牛客网学习笔记——归并排序
归并排序描述请编程实现一个整型数组的归并排序。本题会人工判断,请严格按照题目描述完成输入描述:一个无序的整型数组,输入格式见输入样例输出描述:一个有序的整型数组,输出格式见输出样例示例1输入:[3, 1, 4, 5, 17, 2, 12]输出:[1, 2, 3, 4, 5, 12, 17]x = list(map(int,input().strip('[').strip(']').split(',')))def rank(x): if len(x) <= 1:
2022-03-22 08:59:48 154
原创 牛客网学习笔记——计算某字符出现次数
还是读入出了错,我好像个大傻子HJ2 计算某字符出现次数描述写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)数据范围: 1 \le n \le 1000 \1≤n≤1000输入描述:第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。输出描述:输出输入字符串中含有该字符的个数。(不区分大小写字母)示例1输入:ABCabcA输出:2我写的s = input()k = input()r
2022-03-21 18:50:38 824
原创 leetcode学习笔记——二叉树的所有路径
257. 二叉树的所有路径给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。示例 1:输入:root = [1,2,3,null,5]输出:[“1->2->5”,“1->3”]示例 2:输入:root = [1]输出:[“1”]提示:树中节点的数目在范围 [1, 100] 内-100 <= Node.val <= 100来源:力扣(LeetCode)链接:https://leetcode-
2022-03-16 17:22:38 182
原创 Leetcode学习笔记——平衡二叉树
110. 平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。示例 1:输入:root = [3,9,20,null,null,15,7]输出:true示例 2:输入:root = [1,2,2,3,3,null,null,4,4]输出:false示例 3:输入:root = []输出:true提示:树中的节点数在范围 [0, 5000] 内-104 <= Node.val
2022-03-16 17:12:54 118
原创 leetcode学习笔记——翻转二叉树(226)
226. 翻转二叉树层序遍历 + 翻转class Solution: def invertTree(self, root: TreeNode) -> TreeNode: if not root: return root temps = [root] while temps: temp = [] for i in range(len(temps)):
2022-03-14 17:32:40 627
原创 leetcode学习笔记——层序遍历(429,515,116,104,111)
429. N 叉树的层序遍历"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self.val = val self.children = children"""class Solution: def levelOrder(self, root: 'Node') -> List[List[int]]: if
2022-03-14 16:08:06 103
原创 leetcode学习笔记——二叉树遍历方式(144,145,94)
递归法144. 二叉树的前序遍历# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def preorderTraversal(sel
2022-03-14 15:24:16 430
原创 读书笔记(被讨厌的勇气一)
这本书采用对话的方式,用通俗易懂的语言介绍了阿德勒心理学的观点。用青年的角色问出了读者想问的问题,用智者的角色给出了解答。这本书写了青年和智者的几次讨论,这是阅读两人第一次讨论的总结和感悟。开头青年提出了“我们期待改变现状是因为我们无法改变自己,而我们的现状是由过去的经历决定。”智者用医生和病人的例子指出:任何经历本身并不是成功或者失败的原因。我们不是因为过去受到的刺激而痛苦,而是从中发现了符合我们目的的因素。决定我们自身的不是过去的经历,而是我们赋予经历的意义。人生不是由别人赋予的,而是自己选择的,是自
2022-02-08 19:52:43 271
原创 leetcode学习笔记(移除元素-C)
27. 移除元素看视频不如自己练一练啊,看完总是忘,熟悉一下怎么写用while循环写一下int removeElement(int* nums, int numsSize, int val){ int left = 0; int right = 0; while(right < numsSize){ if(nums[right] != val){ nums[left] = nums[right]; lef
2022-01-28 12:00:37 979
原创 leetcode学习笔记(最接近的三数之和)
16. 最接近的三数之和笨方法-超时了class Solution: def threeSumClosest(self, nums: List[int], target: int) -> int: re = [] for i in range(len(nums)): s = nums[i] for j in range(i+1,len(nums)): for k in range
2021-12-19 10:58:41 191
原创 leetcode学习笔记(盛最多水的容器)
11. 盛最多水的容器笨方法class Solution: def maxArea(self, height: List[int]) -> int: l = 0 r = len(height) - 1 re = [] while l < r: h = min(height[l], height[r]) re.append(h * (r-l)) i
2021-12-19 10:14:15 101
原创 leetcode学习笔记(翻转图像)
832. 翻转图像class Solution: def flipAndInvertImage(self, image: List[List[int]]) -> List[List[int]]: re = [] for i in image: re1 = [] c = i.copy() n = len(i) k = n - 1 for j
2021-12-18 16:26:35 599
原创 leetcode学习笔记(数组中最大数对和的最小值)
1877. 数组中最大数对和的最小值原始解法class Solution: def minPairSum(self, nums: List[int]) -> int: nums.sort() re = [] i = 0 j = len(nums) - 1 while i < j: re.append(nums[i] + nums[j]) i += 1
2021-12-18 16:04:51 218
原创 leetcode学习笔记( 好数对的数目)
1512. 好数对的数目原始解法class Solution: def numIdenticalPairs(self, nums: List[int]) -> int: n = len(nums) r = 0 for i in range(n): for j in range(i+1,n): if nums[i] == nums[j]: r +=
2021-12-18 10:45:22 86
原创 leetcode学习笔记(多数元素)
169. 多数元素最笨的方法class Solution: def majorityElement(self, nums: List[int]) -> int: map = {} re = [] for i in nums: if i in map: map[i] += 1 else: map[i] = 1
2021-12-18 10:24:47 88
原创 leetcode学习笔记(字符串中的所有变位词)
438.字符串中的所有变位词我觉得可以,但是超时了class Solution: def findAnagrams(self, s: str, p: str) -> List[int]: s = list(s) p = list(p) l = len(p) res = [] for i in range(len(s)): m = 0 k = s[i:i+l]
2021-12-12 20:21:44 452
原创 leetcode学习笔记(长度为三且各字符不同的子字符串)
1876.长度为三且各字符不同的子字符串 def countGoodSubstrings(self, s): """ :type s: str :rtype: int """ n = 0 for i in range(len(s)-2): if s[i] != s[i+1] and s[i+1] != s[i+2] and s[i] != s[i+2]:
2021-12-12 16:44:32 159
原创 leetcode学习笔记(搜索旋转排序数组)
33. 搜索旋转排序数组法一class Solution: def search(self, nums: List[int], target: int) -> int: for i in range(len(nums)): if nums[i] == target: return i return -1法二(二分法)因为是经过旋转的数组,和排好序的数组不一样;找到mid数时,比较0和mi
2021-12-05 21:19:14 349
原创 leetcode学习笔记(找出数组排序后的目标下标)
2089. 找出数组排序后的目标下标法一:class Solution: def targetIndices(self, nums: List[int], target: int) -> List[int]: nums.sort() result = [] for i in range(len(nums)): if nums[i] == target: result.append(i)
2021-12-05 19:35:50 660
原创 leetcode学习笔记(连续数列)
面试题 16.17. 连续数列class Solution(object): def maxSubArray(self, nums): dp = nums n = len(nums) for i in range(1,n): dp[i] = max(dp[i-1]+nums[i], nums[i]) return max(dp)
2021-12-01 17:59:12 414
原创 leetcode学习笔记(获取生成数组中的最大值)
1646. 获取生成数组中的最大值class Solution(object): def getMaximumGenerated(self, n): if n == 0: return 0 nums = [0] * (n+1) nums[1] = 1 for i in range(2,n+1): if i % 2 == 0: nums[i] = num
2021-11-29 19:51:46 116
原创 leetcode学习笔记(传递信息)
LCP 07. 传递信息dp[i][j]表示第i次传递时j号同学收到消息的方案数,因为都是从0开始到n-1结束,所以dp[-1][-1]就是到n-1号的方案数class Solution(object): def numWays(self, n, relation, k): dp = [[0]*n for i in range(k+1)] dp[0][0] = 1 for i in range(1,k+1): for r
2021-11-29 19:37:22 267
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人