当前位置: 首页 > news >正文

力扣之1355.活动参与者

  • 题目:

  • Sql 测试用例:

  • Create table If Not Exists Friends (id int, name varchar(30), activity varchar(30));
    Create table If Not Exists Activities (id int, name varchar(30));
    Truncate table Friends;
    insert into Friends (id, name, activity) values ('1', 'Jonathan D.', 'Eating');
    insert into Friends (id, name, activity) values ('2', 'Jade W.', 'Singing');
    insert into Friends (id, name, activity) values ('3', 'Victor J.', 'Singing');
    insert into Friends (id, name, activity) values ('4', 'Elvis Q.', 'Eating');
    insert into Friends (id, name, activity) values ('5', 'Daniel A.', 'Eating');
    insert into Friends (id, name, activity) values ('6', 'Bob B.', 'Horse Riding');
    Truncate table Activities;
    insert into Activities (id, name) values ('1', 'Eating');
    insert into Activities (id, name) values ('2', 'Singing');
    insert into Activities (id, name) values ('3', 'Horse Riding');
  • 分析:首先,我们可以先按照活动分组,然后算出每个活动中的id个数,然后按照这个总数进行排序,正序和倒序,然后不要排名为一的数据。

  • sql实现:

  • with t1 as (select activity,count(1) nu from Friends group by activity  -- 按照活动分组,然后算出每个组内id的个数
    ),t2 as (select activity,rank() over (order by nu) rk1,rank() over (order by nu desc ) rk2 from t1        -- 然后按照个数排序,算出升序和降序的排名(这里使用rank函数,因为需要考虑并列的情况))
    select activity from t2 where rk1 !=1 and rk2 !=1  -- 然后取出升序和降序排名不为1的活动名称
  • pandas测试例子:

  • data = [[1, 'Jonathan D.', 'Eating'], [2, 'Jade W.', 'Singing'], [3, 'Victor J.', 'Singing'], [4, 'Elvis Q.', 'Eating'], [5, 'Daniel A.', 'Eating'], [6, 'Bob B.', 'Horse Riding']]
    friends = pd.DataFrame(data, columns=['id', 'name', 'activity']).astype({'id':'Int64', 'name':'object', 'activity':'object'})
    data = [[1, 'Eating'], [2, 'Singing'], [3, 'Horse Riding']]
    activities = pd.DataFrame(data, columns=['id', 'name']).astype({'id':'Int64', 'name':'object'})
  • pandas分析:和sql 的解法差不多

  • pandas实现:

  • import pandas as pddef activity_participants(friends: pd.DataFrame, activities: pd.DataFrame) -> pd.DataFrame:friend=friends.groupby('activity')['id'].count().reset_index()  -- 分组,算出每个组内id个数friend['rn']=friend['id'].rank(method='min')  -- 升序排序考虑次数相同friend['rn1']=friend['id'].rank(method='min',ascending=False)  -- 降序排序考虑次数相同friend=friend[(friend['rn']!=1) & (friend['rn1']!=1)]['activity'] --然后取出升序和降序排名不为1的活动名称return friend.to_frame() -- 转换成dataframe对象

相关文章:

力扣之1355.活动参与者

题目: Sql 测试用例: Create table If Not Exists Friends (id int, name varchar(30), activity varchar(30)); Create table If Not Exists Activities (id int, name varchar(30)); Truncate table Friends; insert into Friends (id, name, acti…...

数据资产治理:构建敏捷与安全的数据管理体系

在当今数字化的盛况下,作为核心资产的数据已经越发受到企业的重视。但是随着公司的逐步壮大,如何分析这些数据以及如何有效治理数据资产,以确保安全性、合规性以及易用性,是企业面临的重大挑战。数聚股份将从多年从业经验深度探讨…...

Nodejs连接Mysql笔记

框架搭建 安装Node.js 首先,确保你已经在系统上安装了Node.js和npm(Node Packaged Modules)。你可以通过以下命令检查是否已经安装:shell 或者 node -v 或者 npm -v 数据库连接代码 1.导入MySQL2库 npm install mysql2 2.在文件…...

Canvas:AI协作的新维度

在人工智能的浪潮中,OpenAI的最新力作Canvas,不仅是一款新工具,它标志着人工智能协作方式的一次革命性飞跃。Canvas为写作和编程提供了一个全新的交互界面,让用户能够与ChatGPT进行更紧密、更直观的协作。 ​​​​​​​ Canvas的…...

【深度学习】— softmax回归、网络架构、softmax 运算、小批量样本的向量化、交叉熵

【深度学习】— softmax回归、网络架构、softmax 运算、小批量样本的向量化、交叉熵 3.4 Softmax 回归3.4.1 分类问题3.4.2 网络架构 3.4.3 全连接层的参数开销3.4.4 softmax 运算3.4.5 小批量样本的向量化3.4.6 损失函数对数似然softmax 的导数 3.4.7 信息论基础熵信息量重新审…...

C# Wpf 图片按照鼠标中心缩放和平移

C# Wpf 图片按照鼠标中心缩放和平移 1、缩放事件 MouseWheel(object sender, MouseWheelEventArgs e)2、平移相关的事件 MouseMove(object sender, MouseEventArgs e) MouseDown(object sender, MouseButtonEventArgs e) MouseUp(object sender, MouseButtonEventArgs e)3、…...

网络安全产品类型

1. 防火墙(Firewall) 功能:防火墙是网络安全的第一道防线,通过检查进出网络的流量来阻止未经授权的访问。它可以基于预定义的安全规则,过滤数据包和阻止恶意通信。 类型: 硬件防火墙:以专用设备…...

【开源风云】从若依系列脚手架汲取编程之道(五)

📕开源风云系列 🍊本系列将从开源名将若依出发,探究优质开源项目脚手架汲取编程之道。 🍉从不分离版本开写到前后端分离版,再到微服务版本,乃至其中好玩的一系列增强Plus操作。 🍈希望你具备如下…...

金融市场的衍生品交易及其风险管理探讨

金融衍生品市场是现代金融体系的重要组成部分,其交易量和复杂性在过去几十年中迅速增长。衍生品,如期权、期货、掉期等,因其灵活性和杠杆效应,广泛应用于风险管理、投机和资产配置等多个领域。本文将探讨金融衍生品交易的关键特点…...

一、创建型(单例模式)

单例模式 概念 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。它控制类的实例化过程,防止外部代码创建新的实例。 应用场景 日志记录:确保只有一个日志记录器,以便于管理和避免重复记…...

毕业设计项目-古典舞在线交流平台的设计与实现(源码/论文)

项目简介 基于springboot实现的,主要功能如下: 技术栈 后端框框:springboot/mybatis 前端框架:html/JavaScript/Css/vue/elementui 运行环境:JDK1.8/MySQL5.7/idea(可选)/Maven3&#xff08…...

【秋招笔试】10.09华子秋招(已改编)-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 本次的三题全部上线…...

【算法笔记】双指针算法深度剖析

【算法笔记】双指针算法深度剖析 🔥个人主页:大白的编程日记 🔥专栏:算法笔记 文章目录 【算法笔记】双指针算法深度剖析前言一.移动零1.1题目1.2思路分析1.3代码实现 二.复写零2.1题目2.2思路分析2.3代码实现 三.快乐数3.1题目…...

第二十二天|回溯算法| 理论基础,77. 组合(剪枝),216. 组合总和III,17. 电话号码的字母组合

目录 回溯算法理论基础 1.题目分类 2.理论基础 3.回溯法模板 补充一个JAVA基础知识 什么时候用ArrayList什么时候用LinkedList 77. 组合 未剪枝优化 剪枝优化 216. 组合总和III 17. 电话号码的字母组合 回溯法的一个重点理解:细细理解这句话!…...

关闭IDM自动更新

关闭IDM自动更新 1 打开注册表2 找到IDM注册表路径 1 打开注册表 winR regedit 2 找到IDM注册表路径 计算机\HKEY_CURRENT_USER\Software\DownloadManager 双击LstCheck,把数值数据改为0 完成 感谢阅读...

Go 性能剖析工具 pprof 与 Graphviz 教程

在 Golang 开发中,性能分析是确保应用高效运行的重要环节。本文介绍如何使用 gin-contrib/pprof 在 Gin 应用中集成性能剖析工具,并结合 Graphviz 生成图形化的性能分析结果,如火焰图。这套流程帮助开发者更好地理解和优化 Go 应用的性能。 目…...

【题目解析】蓝桥杯23国赛C++中高级组 - 斗鱼养殖场

【题目解析】蓝桥杯23国赛C中高级组 - 斗鱼养殖场 题目链接跳转:点击跳转 前置知识: 了解过基本的动态规划。熟练掌握二进制的位运算。 题解思路 这是一道典型的状压动态规划问题。设 d p i , j dp_{i, j} dpi,j​ 表示遍历到第 i i i 行的时候&a…...

JavaScript可视化:探索顶尖的图表库

JavaScript可视化:探索顶尖的图表库 在这个被数据驱动的时代,你有没有想过,数据本身是如何变得有意义的?答案就是数据可视化。通过图表和图形,我们不仅可以看到数据,还可以感受到它,从而做出明…...

谷歌AI大模型Gemini API快速入门及LangChain调用视频教程

1. 谷歌Gemini API KEY获取及AI Studio使用 要使用谷歌Gemini API,首先需要获取API密钥。以下是获取API密钥的步骤: 访问Google AI Studio: 打开浏览器,访问Google AI Studio。使用Google账号登录,若没有账号&#xf…...

进入容器:掌控Docker的世界

进入容器:掌控Docker的世界 在这个快速发展的技术时代,你是否曾被Docker的庞大生态所吸引?那么,有没有想过在这个容器化的世界里,如何快速高效地“进入”这些隐藏在虚拟墙后的容器呢?容器就如同魔法箱,装载着应用与服务,而你,通过探索这些容器,能够更好地管理、排除…...

Rust DLL注入技术深度解析:Rust-for-Malware-Development完整实现指南

Rust DLL注入技术深度解析:Rust-for-Malware-Development完整实现指南 【免费下载链接】Rust-for-Malware-Development Rust for malware Development is a repository for advanced Red Team techniques and offensive malwares & Ransomwares, focused on Rus…...

浅谈MIKE URBAN转SWMM的方法

01 前言近期有群友咨询MIKE URBAN怎么转换成SWMM的INP文件格式,其实这个是很简单的,前提是你对两个软件格式足够熟悉,另一方面,很多年前SWMM就开发了inpPNS软件。可以利用这个软件便可实现转换,小编抽时间给大家分享下…...

3分钟搞定Windows和Office激活:KMS_VL_ALL_AIO智能脚本使用指南

3分钟搞定Windows和Office激活:KMS_VL_ALL_AIO智能脚本使用指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为系统激活烦恼吗?Windows提示许可证过期&#xff0c…...

MultiAgentBench:一套真正评测多智能体协作与博弈能力的基准

摘要:大语言模型已经展现出作为自主智能体的显著能力,但现有基准要么只关注单智能体任务,要么局限于狭窄领域,无法刻画多智能体协作与竞争的动态过程。本文提出 MultiAgentBench,这是一个面向 LLM 多智能体系统的综合性…...

Vue3+Three.js实战:拆解Xtreme1点云标注工具的技术架构

Vue3Three.js深度实战:构建工业级3D点云标注工具的技术解析 在自动驾驶、工业检测和机器人视觉领域,3D点云标注工具正成为AI训练数据生产的核心基础设施。Xtreme1作为开源多模态标注平台的代表,其pc-tool模块采用Vue3Three.js技术栈实现了专…...

5分钟攻克Windows苹果设备驱动安装难题

5分钟攻克Windows苹果设备驱动安装难题 【免费下载链接】Apple-Mobile-Drivers-Installer Powershell script to easily install Apple USB and Mobile Device Ethernet (USB Tethering) drivers on Windows! 项目地址: https://gitcode.com/gh_mirrors/ap/Apple-Mobile-Driv…...

从零搭建一个游戏设置面板:用Horizontal Layout Group搞定选项排布(Unity 2022 LTS)

从零搭建游戏设置面板:Horizontal Layout Group实战指南 在Unity游戏开发中,一个直观易用的设置面板是提升玩家体验的关键组件。本文将带你从零开始,使用Horizontal Layout Group组件构建一个专业的游戏设置界面,涵盖音量控制、画…...

Phi-3-mini-4k-instruct-gguf详细步骤:模型升级路径与q4/q5_k_m量化对比测试

Phi-3-mini-4k-instruct-gguf详细步骤:模型升级路径与q4/q5_k_m量化对比测试 1. 模型概述与使用场景 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本,特别适合以下应用场景: 智能问答系统文本改写与润色内容摘…...

Navicat数据库自动备份实战:如何设置定时任务避免数据丢失

Navicat数据库自动备份实战:如何设置定时任务避免数据丢失 数据是现代企业的核心资产,一次意外的数据丢失可能造成难以估量的损失。作为数据库管理工具中的佼佼者,Navicat提供了强大的自动备份功能,能够帮助中小企业和个人开发者建…...

如何通过ExplorerPatcher实现Windows 11界面个性化定制:从经典布局到高效工作流

如何通过ExplorerPatcher实现Windows 11界面个性化定制:从经典布局到高效工作流 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher Wi…...