【算法】算法题-20231110

一、力口:506. 相对名次

简单
给你一个长度为 n 的整数数组 score ,其中 score[i] 是第 i 位运动员在比赛中的得分。所有得分都 互不相同 。

运动员将根据得分 决定名次 ,其中名次第 1 的运动员得分最高,名次第 2 的运动员得分第 2 高,依此类推。运动员的名次决定了他们的获奖情况:

名次第 1 的运动员获金牌 “Gold Medal” 。
名次第 2 的运动员获银牌 “Silver Medal” 。
名次第 3 的运动员获铜牌 “Bronze Medal” 。
从名次第 4 到第 n 的运动员,只能获得他们的名次编号(即,名次第 x 的运动员获得编号 “x”)。
使用长度为 n 的数组 answer 返回获奖,其中 answer[i] 是第 i 位运动员的获奖情况。

示例 1:
输入:score = [5,4,3,2,1]
输出:[“Gold Medal”,“Silver Medal”,“Bronze Medal”,“4”,“5”]
解释:名次为 [1st, 2nd, 3rd, 4th, 5th] 。

示例 2:
输入:score = [10,3,8,9,4]
输出:[“Gold Medal”,“5”,“Bronze Medal”,“Silver Medal”,“4”]
解释:名次为 [1st, 5th, 3rd, 2nd, 4th] 。

class Solution:
    def findRelateRank(self, nums):
        pairs = []
        for i in range(len(nums)):
            pairs.append([nums[i], i])  # [[10,0],[3,1],[8,2],[9,3],[4,4]]
        pairs1 = sorted(pairs, key=lambda x: x[0], reverse=True)  # [[10,0],[9,3],[8,2],[4,4],[3,1]]
        for i in range(len(nums)):
            if i == 0:
                nums[pairs1[i][1]] = "G"
            if i == 1:
                nums[pairs1[i][1]] = 'S'
            if i == 2:
                nums[pairs1[i][1]] = "Bronze Medal"
            if i > 2:
                nums[pairs1[i][1]] = str(i + 1)
        return nums


s = Solution()
nums = [10, 3, 8, 9, 4]
print(s.findRelateRank(nums))

二、力口:485.最大连续 1 的个数

简单
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。

示例 1:
输入:nums = [1,1,0,1,1,1]
输出:3
解释:开头的两位和最后的三位都是连续 1 ,所以最大连续 1 的个数是 3.

示例 2:
输入:nums = [1,0,1,1,0,1]
输出:2

def fun1(nums):
    pre = 0
    res = 0
    for i in nums:
        if i == 1:
            pre += 1
            res = max(pre, res)
        else:
            pre = 0
    return res


nums = [1, 0, 1, 1, 0, 1]
r = fun1(nums)
print(r)

三、力口:476. 数字的补数

简单
对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。

例如,整数 5 的二进制表示是 “101” ,取反后得到 “010” ,再转回十进制表示得到补数 2 。
给你一个整数 num ,输出它的补数。

示例 1:
输入:num = 5
输出:2
解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。

示例 2:
输入:num = 1
输出:0
解释:1 的二进制表示为 1(没有前导零位),其补数为 0。所以你需要输出 0 。

def test1(num):
    r = bin(num)
    print(r)
    res = '0b'
    for i in r[2:]:
        if i == '0':
            ss = i.replace(i, '1')
            res += ss
        else:
            ss = i.replace(i, '0')
            res += ss
    print(res)
    print(int(res, 2))


num = 5
test1(num)

四、力口:461. 汉明距离

简单
两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。
给你两个整数 x 和 y,计算并返回它们之间的汉明距离。

在这里插入图片描述

思路
异或运算符(^)
运算规则:当两对应的二进位相异时,结果为1
0^0=0; 0^1=1; 1^0=1; 1^1=0;
即:参加运算的两个对象,如果两个位为“异”(值不同),则该位结果为1,否则为0。
但如果仔细学习就会了解对于两个数字的异或结果,其实是转化为二进制后按位比较的。
如上方示例的说明 1 ^ 4 后由于第一位和第三位(从低位到高位/右到左)不同,
所以结果是0101结果为5,所以1^ 4 = 5
那么,我们只需要先将两数异或后,获取哪些位数为1代表这两个数该位上的值不同,就是结果。

class Solution:
    def hammingDistance(self, x: int, y: int) -> int:
        return bin(x ^ y).count('1')

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

野火i.MX6ULL开发板wifi连接、SHH登录玄学篇

1、WiFi连接成功 服了,一样的步骤,它又行了。 手机开热点,2.4G频段,wanghaha,连上显示了IP地址,输入ping 百度网址 等了七八秒它访问成功。 中间还用过usb线刷镜像Debian。 2、使用 MobaXterm SSH 登录…

mongodb通过mongoexport命令导出数据

一、mongoexport命令参数 我们通过mongoexport --help来查看这个命令支持的参数 二、mongoexport几个常用参数的演示 2.1、导出所有数据,格式为json格式 –type 用来指定导出的数据格式,可以导出为.json或者.csv mongoexport --host localhost --…

GPT-4 Turbo:OpenAI发布旗舰版GPT-4模型,更便宜|更强大|128K上下文|支持多模态

一、介绍 OpenAI 在 2023 年 11 月 7 日举行首届开发者大会,此次展会的亮点无疑是 GPT-4 Turbo 的亮相,它是 OpenAI 著名的 GPT-4 模型的升级版。 GPT-4 Turbo 有两种变体:一种用于文本分析,另一种能够理解文本和图像。 GPT-4 Tu…

【架构】后端项目经典分层架构介绍

文章目录 前言分层架构项目实践示例项目结构 其他知识 前言 开发后端项目时,我们最常见的一种架构模式就是分层架构 。 所谓的分层架构,就是把系统自上而下分为多个不同的层,每一层都有特定的功能和职责,且只和自己的直接上层与…

游戏缺失d3dx9_39.dll的5个修复方法,深度解析d3dx9_39.dll文件的作用

在当今的数字化时代,电子游戏已经成为了人们休闲娱乐的重要方式之一。然而,对于许多玩家来说,他们在享受游戏带来的乐趣的同时,也可能会遇到各种各样的问题,其中最常见的就是游戏无法正常运行。而这些问题中&#xff0…

chatglm3-6b记录问答对

# 打开文件,第二个参数是打开文件的模式,a代表追加,也就是说,打开这个文件之后直接定位到文件的末尾 file open(chatlog.txt, "a") # 写入数据 file.write(ask:prompt_text\n) file.write(response:response\n) # 关闭文件 fil…

2023.11.10联赛 T3题解

题目大意 题目思路 感性理解一下,将一个数的平方变成多个数平方的和,为了使代价最小,这些数的大小应该尽可能的平均。 我们可以将 ∣ b i − a i ∣ |b_i-a_i| ∣bi​−ai​∣放入大根堆,同时将这个数划分的次数以及多划分一段减…

基于.NET的强大文件格式开源转换工具

推荐一个非常强大、轻便的强大文件格式转换工具。 01 项目简介 一个基于.NET平台的开源文件格式转换工具,可以支持Windows 7/8/10等操作系统。安装后在右键菜单中出现 “File Converter” 项目,可以方便地通过右键菜单对选中文件进行格式转换&#xff…

找到【SVM】中最优的惩罚项系数C

因为本来SVM是想找到间隔最大的分割面,所以C越大,SVC会选择边际更小的,能够更好的分类所有训练点的决策边界,不过模型的训练时间也会越长。如果C的设定值较小,那SVC会尽量最大化边界,决策功能会更简单&…

【论文阅读】多模态NeRF:Cross-Spectral Neural Radiance Fields

https://cvlab-unibo.github.io/xnerf-web intro 从不同的light spectrum sensitivity获取信息,同时需要obtain a unified Cross-Spectral scene representation – allowing for querying, for any single point, any of the information sensed across spectra。…

【师兄啊师兄2】大爆料,敖乙回归,创造新里程碑,有望做成年番

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 深度爆料《师兄啊师兄》最新资讯消息,玄机公司,作为动漫制作界的佼佼者,其制作的动漫作品一直以来备受瞩目。如今,在斗罗大陆第二部和吞噬星空第四季的热播之下…

[C/C++]数据结构 深入挖掘环形链表问题

前言 在上一篇文章中讲述了如何判断链表是否带环,在观看本片文章时建议先了解一下这篇文章的内容[C/C]数据结构 链表OJ题:环形链表。本篇文章我们将讲述关于环形链表的几种不同的情况如下,同时我们要解决另一个环形链表问题----找到入环点 slow一次走一步fast一次走两步一定会…

网络工程师回顾学习(第二部分)

第六章:网络互连与互联网 需要掌握: (1)网络互连设备 (2)网络互连的基本原理和关键技术 (扩展:TCP/IP协议簇) (3)Internet协议及其提供的网络…

Android---屏幕适配的处理技巧

在几年前,屏幕适配一直是困扰 Android 开发工程师的一大问题。但是随着近几年各种屏幕适配方案的诞生,以及谷歌各种适配控件的推出,屏幕适配也显得越来越容易。下面,我们就来总结一下关于屏幕适配的那些技巧。 ConstraintLayout …

CSRF(跨站请求伪造)攻击演示

目录 CSRF(跨站请求伪造)攻击演示CSRF 是什么CSRF 演示项目代码CSRF 演示过程服务启动演示 CSRF(跨站请求伪造)攻击演示 CSRF 是什么 CSRF(Cross-Site Request Forgery)跨站请求伪造,是一种网络安全攻击,其目标是利用被攻击者在…

【FastCAE源码阅读7】视图方向切换按钮实现原理

在FastCAE工具栏上有视图切换按钮,如下图所示: 本文介绍如何实现。 FastCAE集成了Python解析器,当单击按钮时,中间用Python执行的,最后调用MainWindow.dll库接口实现的。 具体的Python代码在Python模块的py文件夹下的…

Kali无线网卡无法识别

啊莫,该不会有人Kali系统识别不了自己的无线网卡吧! 环境:本来用作监听功能的3037芯片无线网卡,自己胡乱调,一不小心调试成了物理网卡的功能,变成了WLAN2网卡,结果用在了Windows系统上!如果你也是这样,点开你的网络适配器看看吧! 解决思路:1.删驱动 删除Windows上的…

基于JavaWeb+SSM+Vue微信小程序校园兼职任务平台系统的设计和实现

基于JavaWebSSMVue微信小程序校园兼职任务平台系统的设计和实现 源码传送入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码传送入口 前言 随着社会的发展和全球疫情的冲击,大学生的就业形势越来越严峻。越…

PLC开放式以太网通信网络状态查看工具netstat

在进行PLC的开放式以太网通信时,为了查看网络状态我们可以利用ping这个强有力的工具,还可以使用netstat这个工具。 博途PLC开放式以太网通信 UDP通信 博途PLC 1200/1500PLC开放式以太网通信TSEND_C通信(UDP)_RXXW_Dor的博客-CSDN博客文章浏览阅读1.7k次。开放式TSEND_C通信…

地理数据常用处理

自助式绘图工具kepler UTM坐标转WGS84 首先根据UTM对应表找到目标地区的编号,中国东部地区属于UTM Zone 50N 再查找UTM 50N 的EPSG标准 https://epsg.io/?qUTMzone50N 得到 EPSG:32650 Transform coordinates geohash编码与解码 import transbigdata as tbd …