头歌python

目录

文章目录

  • 目录
  • 顺序查找(依频率查找)
    • 任务描述
  • 计算器
  • 链表的构造
  • 线性表的构造
  • 图遍历


顺序查找(依频率查找)

思路:用字典进行存储,考字典的操作

任务描述

本关任务:顺序查找是一种简单的查找算法,它遍历待查找的元素列表,按照元素出现的频次进行查找。给定一个包含 N 个整数的列表,设计一个 Python 算法,查找列表中出现频次最高的元素,并返回该元素。


def find_most_frequent_element(arr):########## Begin ##########dic = {}max_num = 0index = 0for i in arr:if i in dic:dic[i] = dic[i] + 1else:dic[i] = 1if max_num < dic[i]:index=imax_num = dic[i]return index##########  End  ########### 输入数据
N = int(input())  # "请输入列表中元素的个数:"
arr = list(map(int, input().split()))  # 请输入N个用空格分隔的整数# 求解并输出结果
result = find_most_frequent_element(arr)
print("列表中出现频次最高的元素是:", result)

这里的i in dict中,i指的是字典中的key。
字典的循环:

 for key in dict:
 for key in book.keys():print(key)for value in book.values():print(value)
for item in dict.items():key=item[0]value=item[1]for key,value in dict.items () 

计算器

主要是考强制类型转换

class Solution:def solve(self, op, num_1, num_2):''':type op, num_1, num_2: str, int, int:rtype : Str'''#请在此添加代码,实现计算并返回表达式的结果,要求结果保留2位小数#********** Begin *********#if op=='+':result= num_1+num_2if op=='-':result= num_1-num_2if op=='*':result= num_1*num_2if op=='/':result= num_1/num_2return '%.2f'%result#********** End *********#

链表的构造

class Node:def __init__(self, value):self.value = valueself.next = Noneclass LinkedList:def __init__(self):self.head = Noneself.p=Nonedef add_node(self, value):########## Begin ##########node=Node(value)if self.head==None:self.head=nodeself.p=self.headelse:self.p.next=nodeself.p=node##########  End  ##########def print_list(self):current = self.headwhile current:print(current.value, end=" ")current = current.nextif __name__ == "__main__":# 获取用户输入的整数列表input_list = list(map(int, input().split())) # 请输入整数列表,以空格分隔# 构造链表linked_list = LinkedList()for num in input_list:linked_list.add_node(num)# 打印链表节点值linked_list.print_list() #链表的节点值

线性表的构造

思路:用列表list存储


class LinearList:def __init__(self):self.data = []def add_element(self, element):########## Begin ##########self.data.append(element)##########  End  ##########def get_element(self, index):########## Begin ##########if index<len(self.data):return self.data[index]else:return "Error: Index out of range."##########  End  ##########def remove_element(self, index):########## Begin ##########result=[]for i in range(len(self.data)):if i!=index:result.append(self.data[i])self.data=result##########  End  ########### 测试用例
if __name__ == "__main__":# 初始化线性表linear_list = LinearList()# 添加元素并输出linear_list.add_element(10)linear_list.add_element(20)linear_list.add_element(30)print(linear_list.get_element(0))  # 输出:10print(linear_list.get_element(2))  # 输出:30# 删除元素并输出linear_list.remove_element(1)print(linear_list.get_element(2))  # 输出:Error: Index out of range.

删除列表元素:
del list1[2]

图遍历

1.深度遍历
思路:
定义一个矩阵表示各个边之间的关系
定义一个数组存储表示是否遍历到所有的点(visited)
定义一个列表存储遍历到的点(result)
定义start表示出发的地点
基本想法:首先从start开始出发进行深度遍历(遍历矩阵中的start行,如果值为1且visited[start]为False,则将列下标存储到visited中。然后start从该下标开始重新遍历)


def dfs(adj_matrix, start, visited, result):########## Begin ##########num=adj_matrix[start]result.append(start)visited[start]=Trueindex=0while index<=len(adj_matrix[start]):for i in range(len(adj_matrix[start])):if adj_matrix[start][i]==1 and visited[i]==False:result.append(i)visited[i]=Truestart=ibreakindex=index+1for k in range(len(visited)):if visited[k]==False:for j  in range(len(adj_matrix[k])):if adj_matrix[k][j]==1 and visited[j]==True:visited[k]=Trueresult.append(k)return result##########  End  ##########if __name__ == "__main__":N = int(input())  # 输入城市景点的数量adj_matrix = [list(map(int, input().split())) for _ in range(N)]  # 输入邻接矩阵start = int(input())  # 输入起始景点的编号visited = [False] * Nresult = []dfs(adj_matrix, start - 1, visited, result)print(*[x + 1 for x in result])  # 输出深度优先遍历的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/170653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php如何对比浮点数大小(bccomp函数)

第一部分&#xff0c;常规例子&#xff1a; 例1&#xff1a;左边比右边小&#xff0c;结果&#xff1a;-1 //示例&#xff0c;左边比右边小返回值&#xff1a;-1 $price1 2.14; $price2 3.14; $result bccomp($price1, $price2, 2); echo 对比结果&#xff1a;.$result;//…

leetcode刷题日志-15.三数之和

这道题还是有点难度&#xff0c;我能想到的就是三重循环&#xff0c;但是题目限制不能重复&#xff0c;所以这道题三重循环完还要去重&#xff0c;太过于麻烦。看了题解以后&#xff0c;大佬们还是厉害&#xff0c;大概思路是这样子的&#xff1a;先对数组进行排序&#xff0c;…

《洛谷深入浅出基础篇》P4017最大食物链————拓扑排序

上链接&#xff1a;P4017 最大食物链计数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)https://www.luogu.com.cn/problem/P4017 上题干&#xff1a; 题目背景 你知道食物链吗&#xff1f;Delia 生物考试的时候&#xff0c;数食物链条数的题目全都错了&#xff0c;因为她总是…

安全攻击及防范手册

目录 1 概述 1.1 简介 1.2 参考资料 2 安全隐患及预防措施 <

堆和栈的区别 重点来说一下堆和栈;堆与栈之间的联系

文章目录 堆和栈的区别重点来说一下堆和栈&#xff1a;那么堆和栈是怎么联系起来的呢? 堆与栈的区别 很明显&#xff1a; 今天来聊一聊java中的堆和栈&#xff0c;工作当中这两个也是经常遇到的&#xff0c;知识我们没有去注意理论上的这些内容&#xff0c;今天就来分享一下。…

02_MySQL体系结构及数据文件介绍

#课程目标 了解MySQL的体系结构了解MySQL常见的日志文件及作用了解事务的控制语句&#xff0c;提交和回滚能够查看当前数据库的版本和用户了解MySQL数据库如何存放数据能在使用SQL语句创建、删除数据库 #一、MySQL的体系结构 ##1、客户端(连接者) MySQL的客户端可以是某个客户…

如何处理消费过程中的重复消息?

欢迎大家到我的博客浏览。如何处理消费过程中的重复消息&#xff1f; | YinKais Blog 本文来聊一聊消息队列过程中消息重复怎么办&#xff1f;<!--more--> 在消息传递过程中&#xff0c;如果出现消息传递失败&#xff0c;发送方就会进行重试&#xff0c;重试过程中就有可…

redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】

redis数据结构介绍 redis是一个key-value的数据库&#xff0c;key一般是String类型&#xff0c;但是value的类型多种多样。 redis 通用命令 keys : 查看符合模板的所有key &#xff08;keys partten ,匹配表达式支持一些特殊字符 * &#xff1f;&#xff09;del&#xff1a;删…

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞

项目实战详细讲解带有条件响应的 SQL 盲注、MFA绕过技术、MFA绕过技术、2FA绕过和技巧、CSRF绕过、如何寻找NFT市场中的XSS漏洞。 带有条件响应的 SQL 盲注 这篇文章的核心要点如下: 漏洞发现:作者在Portswigger提供的实验室中发现了一个盲SQL注入漏洞。这个漏洞存在于一个应…

paho mqtt的keepAliveInterval

一、keepAliveInterval 所用的版本为1.3.12 实验一、 这个值设置的30&#xff0c;打开mqtt的trace&#xff0c;发现每隔33s发送一次pingreq note&#xff1a; 期间&#xff0c;client和server一直保持qos0的消息交互&#xff08;client->server&#xff09; 实验二、 …

力扣:提莫攻击

代码&#xff1a; class Solution { public:int findPoisonedDuration(vector<int>& timeSeries, int duration){//根据数组中给出的元素的值来进行判断&#xff01;//若后面元素-前面元素>d 中了d秒&#xff01;// <d 中了差的秒数&…

cesium轨迹线(闪烁轨迹线)

cesium轨迹线(闪烁轨迹线) 下面有源码 实现思路 使用ellipse方法加载圆型,修改polyline中‘material’方法重写glsl来实现当前效果(cesium版本1.109) 示例代码 index.html <!DOCTYPE html> <html lang="en"><head

opencv入门1.1:从视频或摄像头读取图像

cv::VideoCapture是 OpenCV 中用于从视频文件或摄像头捕获图像帧的类。它提供了各种方法和函数&#xff0c;用于读取和处理视频数据。 以下是对 cv::VideoCapture类的详细解释和说明&#xff1a; 1. 打开视频源 为了使用 cv::VideoCapture&#xff0c;我们首先需要打开一个视…

Java多态:多态多态,多么变态

&#x1f451;专栏内容&#xff1a;Java⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、重写1、重写的规则2、重写与重载的区别 二、多态1、多态的概念2、多态的实现3、向上转移和向下转型Ⅰ、向上转型Ⅱ、向下转…

基于python+Django+SVM算法模型的文本情感识别系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介1. 简介2. 技术栈3. 系统架构4. 关键模块介绍5. 如何运行 二、功能三、系统四. 总结 一项目简介 # 基于 Python Django SVM 算法模型的文本情感识别系统介…

DeepWalk代码实战-维基百科词条图嵌入可视化

准备工作&#xff1a; 从爬虫网站中爬取维基百科See also关联词条&#xff1a;https://densitydesign.github.io/strumentalia-seealsology/ 维基百科网站&#xff1a;https://www.wikipedia.org/ 爬取过程&#xff1a; 下载 tsv 文件&#xff1a; import networkx as nx # 图…

【数据结构】D : 图的顶点可达闭包

D : 图的顶点可达闭包 Description 给定有向图的邻接矩阵A&#xff0c;其元素定义为&#xff1a;若存在顶点i到顶点j的有向边则A[i,j]1&#xff0c;若没有有向边则A[i,j] 0。试求A的可达闭包矩阵A*&#xff0c;其元素定义为&#xff1a;若存在顶点i到顶点j的有向路径则A*[i,j…

pat实现基于邻接矩阵表示的深度优先遍历[含非递归写法]

文章目录 1.递归2.非递归 1.递归 void DFS(Graph G, int v) {visited[v] 1;printf("%c ", G.vexs[v]);for (int i 0; i < G.vexnum; i) {if (!visited[i] && G.arcs[v][i]) DFS(G, i);} }2.非递归 #include <stack> #include <iostream> …

Faster R-CNN源码解析(三)

目录 todaytorch.meshgrid()函数 today 今天我们主要来捋一捋AnchorsGenerator这部分代码,对应在network_files文件夹中的rpn_function文件中&#xff0c;从RegionProposalNetwork()类的forward()函数开始看&#xff0c;首先会进入head部分也就是我们看到的RPNHead部分,也就是…

继承性和多态性实验

继承性和多态性实验 一、实验题目二、实验目的三、实验内容与实现1&#xff1a;【实验内容】2:【实验实现】雇员类&#xff08;Employee&#xff09;的实现&#xff0c;如下图所示&#xff1a;2&#xff1a;经理类&#xff08;Manager&#xff09;的实现&#xff0c;如下图所示…