- 博客(64)
- 问答 (1)
- 收藏
- 关注
原创 数据结构-哈夫曼编码
字符的编码方式有多种,除了大家熟悉的ASCII编码,哈夫曼编码(Huffman Coding)也是一种编码方式,它是可变字长编码。该方法完全依据字符出现概率来构造出平均长度最短的编码,称之为最优编码。你的任务是对从键盘输入的一个字符串求出它的ASCII编码长度和哈夫曼编码长度的比值。对应字符的ASCII编码长度la,huffman编码长度lh和la/lh的值(保留一位小数),数据之间以空格间隔。输入数据有多组,每组数据一行,表示要编码的字符串。
2022-09-09 08:42:39
901
原创 数据结构-二叉树-模板题
已知二叉树的一个按前序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树,并输出建立二叉树的前序遍历序列、中序遍历序列、后序遍历序列、层次遍历序列、深度、叶子数。对于每组测试数据,第1行输出其前序遍历序列、第2行输出其中序遍历序列、第3行输出其后序遍历序列、第4行输出其深度、第5行输出其叶子数。多组测试数据,对于每组测试数据,输入一个长度小于50的按前序遍历输入的字符序列。
2022-09-04 15:12:09
287
原创 opencv项目的CMakeLists配置文件
env_test为工程的命名,OpenCV_DIR为opencv的安装路径记得修改cmake_minimum_required(VERSION 3.16)project(env_test)set(CMAKE_CXX_STANDARD 14)# 可以将下面的路径单独添加到环境变量OpenCV_DIRset(OpenCV_DIR "E:\\opencv\\mingw-build\\install")find_package(OpenCV REQUIRED)include_directorie
2022-05-02 14:56:23
2421
原创 Leetcode 797. 所有可能的路径
797. 所有可能的路径class Solution: def allPathsSourceTarget(self, graph: List[List[int]]) -> List[List[int]]: result = [] ans = [] def dfs(i): if i == len(graph) - 1: result.append(ans[:])
2022-02-28 22:42:12
102
原创 Leetcode 150. 逆波兰表达式求值
150. 逆波兰表达式求值class Solution: def evalRPN(self, tokens: List[str]) -> int: operation = ['+', '-', '*', '/'] nums = [] for num in tokens: if num not in operation: nums.append(float(num))
2022-02-18 22:08:35
122
原创 Leetcode 116. 填充每个节点的下一个右侧节点指针
116. 填充每个节点的下一个右侧节点指针Code"""# Definition for a Node.class Node: def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None): self.val = val self.left = left self.right = right sel
2022-02-10 22:09:29
92
原创 蓝桥杯 平方末尾
Codenum = [0 for _ in range(100)]for i in range(100): num[i * i % 100] = 1print(num.count(1))Result22
2022-02-09 19:24:11
6279
原创 Leetcode 103. 二叉树的锯齿形层序遍历
103. 二叉树的锯齿形层序遍历Ideas算法:DFS数据结构:二叉树Code时间复杂度:O(N),其中 N 为二叉树的节点数。每个节点会且仅会被遍历一次。空间复杂度:O(N)。我们需要维护存储节点的队列和存储节点值的双端队列,空间复杂度为 O(N)。# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# se
2022-02-09 19:11:44
208
原创 Leetcode 102. 二叉树的层序遍历
129. 求根节点到叶节点数字之和Ideas算法:递归数据结构:二叉树Code时间复杂度:O(N)其中 N 为二叉树的节点数,即遍历一棵二叉树的时间复杂度,每个结点只被访问一次。空间复杂度:O(Height)其中 Height 为二叉树的高度。# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self
2022-02-08 17:03:48
135
原创 蓝桥杯 螺旋折线
Codex, y = map(int, input().split(' '))# 累加公式乘2def preSum(n): return n ** 2 + nif x > 0: if abs(x) >= abs(y): ans = preSum(2 * x - 1) + 2 * x if y <= 0: ans += x + abs(y) # else: ans += x - y # el...
2022-01-24 00:11:19
5580
原创 Leetcode 22. 括号生成
22. 括号生成Ideasn很小,考虑深搜每次添加之前计算括号的数量,判断是否有效如果左括号数量不大于 n,我们可以放一个左括号。如果右括号数量小于左括号的数量,我们可以放一个右括号。Codeclass Solution {public: int nn; vector<string> ans; void dfs(int now, int zuo, int you, string& path) { if (now == 2 *
2022-01-23 21:15:57
230
原创 Leetcode 1267. 统计参与通信的服务器
1267. 统计参与通信的服务器Ideas用一行和一列去记录出现的个数,最后遍历全部元素统计一下C++class Solution {public: int countServers(vector<vector<int>>& grid) { int m = grid.size(); int n = grid[0].size(); vector<int> count_m(m), count_n(n);
2022-01-19 19:03:22
745
原创 Leetcode 面试题 16.10. 生存人数
面试题 16.10. 生存人数C++class Solution {public: int maxAliveYear(vector<int>& birth, vector<int>& death) { int ans = 0, length = birth.size(); vector<int> cnt(105,0); for(int i = 0; i < length;
2022-01-18 22:47:54
5004
原创 洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
P1873砍树Ideas算法:二分答案Code#include <bits/stdc++.h>using namespace std;typedef long long ll;int main() { int n, m; cin >> n >> m; vector<int> a(n); for (int i = 0; i < n; i++) cin >> a[i]; int l = -1, r = 100
2022-01-18 19:27:19
559
原创 Leetcode 240. 搜索二维矩阵 II
240. 搜索二维矩阵 IIIdeas算法:二分查找Codeclass Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: m = len(matrix) n = len(matrix[0]) for row in matrix: if row[0] > target or row[n - 1] &l
2022-01-15 22:44:12
118
原创 Leetcode 33. 搜索旋转排序数组
33. 搜索旋转排序数组Ideas算法:二分查找Codeclass Solution: def search(self, nums: List[int], target: int) -> int: if target in nums: return nums.index(target) return -1class Solution {public: int search(vector<int>&
2022-01-14 00:33:00
195
原创 蓝桥杯 等差数列
Coden = int(input())nums = list(map(int,input().split()))nums.sort()length = len(nums)cha = 100000for i in range(length - 1- 1): if cha > nums[i + 1] - nums[i]: cha = nums[i + 1] - nums[i]if cha == 0: print(length)else: prin.
2022-01-14 00:24:57
122
原创 Leetcode 202. 快乐数
202. 快乐数Codeclass Solution: def isHappy(self, n: int) -> bool: def help(x): temp = list(map(int,[i for i in str(x)])) num = 0 for i in temp: num += i ** 2 return num a
2022-01-13 00:21:39
129
原创 蓝桥杯 年号字串
Codeans, num = '', 2019while num: ans += f"{chr(num % 26 + ord('A') - 1)}" num //= 26print(ans[::-1])ResultBYQ
2022-01-12 23:58:43
132
原创 Leetcode 118. 杨辉三角
118. 杨辉三角118. 杨辉三角Codeclass Solution: def generate(self, numRows: int) -> List[List[int]]: re = [] for i in range(numRows): values = [] for j in range(i + 1): if j == 0 or j == i:
2022-01-12 00:05:32
1573
原创 蓝桥杯 旋转
Coden, m = map(int, input().split())re = [[0 for _ in range(n)] for _ in range(m)]for row in range(n): values = list(map(int, input().split())) for col in range(m): re[col][n - row - 1] = values[col]for line in re: print(' '.join..
2022-01-11 23:48:54
500
原创 Leetcode 274. H 指数
274. H 指数Codeclass Solution: def hIndex(self, citations: List[int]) -> int: citations.sort(reverse=True) for i, v in enumerate(citations): if i + 1 > v: return i return len(citations)
2022-01-09 00:38:40
559
原创 Leetcode 268. 丢失的数字
268. 丢失的数字Codeclass Solution: def missingNumber(self, nums: List[int]) -> int: length = len(nums) nums.sort() for i in range(length): if nums[i] != i: return i return length
2022-01-08 23:57:51
73
原创 蓝桥杯 成绩分析
Codeif __name__ == '__main__': nums = [int(input()) for _ in range(int(input()))] print(f"{max(nums)}\n{min(nums)}\n{(sum(nums) / len(nums)):.2f}")
2022-01-08 23:39:17
263
原创 Leetcode 148. 排序链表
148. 排序链表Ideas算法:排序数据结构:链表直接读到列表里排序再写回原链表Code# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=None):# self.val = val# self.next = nextclass Solution: def sortList(self, head: Optional[
2022-01-07 23:23:55
303
原创 蓝桥杯 蛇形填数
n行n列的数依次是: 1 5 13 25 41 相邻两者相差: 4 8 12 16Codere = 1for i in range(20): re += i * 4print(re)Result761
2022-01-07 23:13:05
559
原创 蓝桥杯 成绩统计
Codenum = eval(input())jige, youxiu = 0, 0for i in range(n): score = int(input()) if score >= 85: youxiu += 1 if score >= 60: jige += 1print(f"{round(100 * jige / num)}%")print(f"{round(100 * youxiu / num)}%")
2022-01-06 22:34:50
732
原创 Leetcode 414. 第三大的数
414. 第三大的数Code时间复杂度:O(N)空间复杂度:O(1)class Solution: def thirdMax(self, nums: List[int]) -> int: l = [-2**31-1, -2**31-1, -2**31-1] for i in nums: if i > l[0]: l[2] = l[1] l[1] = l[0]
2022-01-06 21:25:39
465
原创 Leetcode 169. 多数元素
169. 多数元素Codeclass Solution: def majorityElement(self, nums: List[int]) -> int: counter = Counter(nums) return counter.most_common(1)[0][0]
2022-01-04 23:24:16
94
原创 蓝桥杯 排序
最坏情况,全部逆序i = 1sum = 0while(sum <= 100): sum += i i += 1print(sum)print(i)10515所以有abcdefghijklmno这15个字母,将onmlkjihgfedcba减去5次移动,得到jonmlkihgfedcba,进而验证Codedef bubble_sort_count(l): ct = 0 for i in range(len(l)): for j i.
2022-01-04 22:40:56
533
原创 十大经典排序算法
十大经典排序算法LowB三人组冒泡排序选择排序插入排序NB三人组快速排序堆排序归并排序其他排序桶排序希尔排序计数排序基数排序挨个移动位置的都是稳定排序,飞着排序的都是不稳定排序LowB三人组冒泡排序# 冒泡排序def bubble_sort(li): for i in range(len(li)-1): # 第i趟 exchange = False for j in range(len(li)-i-1): if l
2022-01-04 00:03:42
7693
9
原创 Leetcode 507. 完美数
507. 完美数Ideas算法:迭代Code时间复杂度:O(N^(1/2))空间复杂度:O(1)class Solution: def checkPerfectNumber(self, num: int) -> bool: if num == 1: return False sum = 1 d = 2 while d * d <= num: if num % d
2021-12-31 15:48:59
365
原创 蓝桥杯 美丽的2
Codeans = 0for i in range(1, 2021): if(str(i).count('2')): ans += 1print(ans)Result563
2021-12-31 15:26:49
330
原创 Leetcode 204. 计数质数
204. 计数质数Ideas算法:迭代埃氏筛Codeclass Solution: def countPrimes(self, n: int) -> int: l = [1 for _ in range(n)] for i in range(2,int(n ** 0.5) + 1): if l[i]: for j in range(i * i, n, i):
2021-12-31 14:25:59
397
原创 蓝桥杯 约数个数
Codeans = 1 # 加上它本身# 只需迭代到本身的一半即可for i in range(1, int(78120 / 2) + 1): if 78120 % i == 0: ans += 1print(ans)Result96
2021-12-31 13:08:24
662
原创 Leetcode 1925. 统计平方和三元组的数目
1925. 统计平方和三元组的数目Ideas算法:迭代Codeclass Solution: def countTriples(self, n: int) -> int: ans = 0 for a in range(1, n + 1): for b in range(a + 1, n + 1): c = sqrt(a ** 2 + b ** 2) if c % 1
2021-12-30 00:14:41
112
原创 蓝桥杯 既约分数
Codedef gcd(a, b): return a if b == 0 else gcd(b, a % b)if __name__ == '__main__': ans = 0 for zi in range(1, 2021): for mu in range(1, 2021): if gcd(zi, mu) == 1: ans += 1 print(ans)Result248121.
2021-12-30 00:06:54
356
原创 Leetcode 1566. 重复至少 K 次且长度为 M 的模式
1566. 重复至少 K 次且长度为 M 的模式Ideas算法:迭代Code时间复杂度:O(N)空间复杂度:O(N)class Solution: def containsPattern(self, arr: List[int], m: int, k: int) -> bool: length = len(arr) # 如果长度不可能符合,那就提前结束 if(m * k > length): return F
2021-12-28 22:47:19
282
原创 蓝桥杯 扩散
Codeans = 0for x in range(-2020, 2020 + 2020 + 1): for y in range(-2020, 2020 + 2020 + 1): for x_, y_ in [(0, 0), (2020, 11), (11, 14), (2000, 2000)]: # 求曼哈顿距离,即横纵坐标每加一都要传播一次 if abs(x - x_)+abs(y - y_) <= 2020: .
2021-12-28 22:23:05
376
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人