数据结构与算法解题-20240426

在这里插入图片描述


这里写目录标题

  • 面试题 08.04. 幂集
  • 367. 有效的完全平方数
  • 192. 统计词频
  • 747. 至少是其他数字两倍的最大数
  • 718. 最长重复子数组

面试题 08.04. 幂集

中等
幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。
说明:解集不能包含重复的子集。

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

class S0804:def func(self,nums):res=[]def dfs(path,used,startIndex):res.append(path[:])if len(path)==len(nums):returnfor i in range(startIndex,len(nums)):if i>=0 and nums[i]==nums[i-1] and used[i-1]==False:continueif used[i]==True:continueused[i]=Truepath.append(nums[i])dfs(path,used,i)used[i]=Falsepath.pop()dfs([],[False]*len(nums),0)return resr=S0804()
nums=[1,2,3]
print(r.func(nums))

367. 有效的完全平方数

简单

给你一个正整数 num 。如果 num 是一个完全平方数,则返回 true ,否则返回 false 。
完全平方数 是一个可以写成某个整数的平方的整数。换句话说,它可以写成某个整数和自身的乘积。
不能使用任何内置的库函数,如 sqrt 。

示例 1:
输入:num = 16
输出:true
解释:返回 true ,因为 4 * 4 = 16 且 4 是一个整数。

示例 2:
输入:num = 14
输出:false
解释:返回 false ,因为 3.742 * 3.742 = 14 但 3.742 不是一个整数。

class S367:def func(self,num):left=1right=numwhile left<=right:mid=(left+right)//2if mid*mid==num:return Trueelif mid*mid<num:left=mid+1else:right=mid-1return Falser=S367()
num=14
print(r.func(num))

192. 统计词频

中等
写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率。
为了简单起见,你可以假设:
words.txt只包括小写字母和 ’ ’ 。
每个单词只由小写字母组成。
单词间由一个或多个空格字符分隔。
示例:
假设 words.txt 内容如下:
the day is sunny the the
the sunny is is
你的脚本应当输出(以词频降序排列):

the 4
is 3
sunny 2
day 1

class S192:def func(self):with open('word.txt',mode='r',encoding='utf-8') as f:res=f.read()ans=res.split()a=Counter(ans)for k,v in a.items():print(k,v)r=S192()
r.func()

747. 至少是其他数字两倍的最大数

简单

给你一个整数数组 nums ,其中总是存在 唯一的 一个最大整数 。
请你找出数组中的最大元素并检查它是否 至少是数组中每个其他数字的两倍 。如果是,则返回 最大元素的下标 ,否则返回 -1 。

示例 1:
输入:nums = [3,6,1,0]
输出:1
解释:6 是最大的整数,对于数组中的其他整数,6 至少是数组中其他元素的两倍。6 的下标是 1 ,所以返回 1 。

示例 2:
输入:nums = [1,2,3,4]
输出:-1
解释:4 没有超过 3 的两倍大,所以返回 -1 。

class S747:def func(self, nums):new = sorted(nums)  # todo 递增if new[-1] >= nums[-2] * 2:  # todo 比较最后1个数和倒数第2个数return nums.index(new[-1])  # todo 如果满足的话在原列表中求索引else:return -1r = S747()
nums = [1, 2, 3, 4]
print(r.func(nums))

718. 最长重复子数组

中等
给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。

示例 1:
输入:nums1 = [1,2,3,2,1], nums2 = [3,2,1,4,7]
输出:3
解释:长度最长的公共子数组是 [3,2,1] 。

示例 2:
输入:nums1 = [0,0,0,0,0], nums2 = [0,0,0,0,0]
输出:5

class Solution718:def func(self, nums1, nums2):nums1.sort()nums2.sort()i = 0j = 0res = []while i < len(nums1) and j < len(nums2):if nums1[i] > nums2[j]:j += 1elif nums1[i] < nums2[j]:i += 1else:res.append(nums1[i])i += 1j += 1return resr = Solution718()
nums1 = [0,0,0,0,0]
nums2 = [0,0,0,0,0]
print(r.func(nums1, nums2))

在这里插入图片描述

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

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

相关文章

React真的好难用

我发现React就像个宗教一样&#xff0c;网络上总有一群信徒。信徒&#xff1a;React天下第一&#xff0c;谁也不能说他不好。 网络上大佬对React的评价一般有几类&#xff1a; React跟Vue比就是手动档和自动档的区别&#xff0c;高手都开手动档。—— 就一个破打工的&#xf…

06.Cesium快速上手-Primitive图元的讲解

Primitive 结构图解&#xff1a; 图元表示 Scene 中的几何图形。几何图形可以来自单个 GeometryInstance 例子1&#xff1a; // Create the viewer. const viewer new Cesium.Viewer("cesiumContainer"); const scene viewer.scene;// Draw a red box and po…

SpringCloud系列(18)--将服务提供者Provider注册进Consul

前言&#xff1a;在上一章节中我们把服务消费者Consumer注册进了Zookeeper&#xff0c;并且成功通过服务消费者Consumer调用了服务提供者Provider&#xff0c;而本章节则是关于如何将服务提供者Provider注册进Consul里 准备环境&#xff1a; 先安装Consul&#xff0c;如果没有…

【系统架构师】-选择题(四)

1、“41”视图 ①逻辑视图(Logical View)&#xff0c;设计的对象模型(使用面向对象的设计方法时)。 ②过程视图(Process View)&#xff0c;捕捉设计的并发和同步特征。系统集成师 ③物理视图(Physical View)&#xff0c;描述了软件到硬件的映射&#xff0c;反映了分布式特性。系…

星尘智能 AI 机器人 S1——国产机器人的巅峰之作

AI智能机器人真的太炸裂了 国产科技威武-CSDN直播AI智能机器人真的太炸裂了 国产科技威武https://live.csdn.net/v/382519 最近发现了一个国产的机器人&#xff0c;真的让人惊叹不已&#xff01;它就是星尘智能 AI 机器人 S1&#xff01; 这个机器人简直太牛逼了&#xff01;…

比 PSD.js 更强的下一代 PSD 解析器,支持 WebAssembly

比 PSD.js 更强的下一代 PSD 解析器&#xff0c;支持 WebAssembly 1.什么是 webtoon/ps webtoon/ps 是 Typescript 中轻量级 Adobe Photoshop .psd/.psb 文件解析器&#xff0c;对 Web 浏览器和 NodeJS 环境提供支持&#xff0c;且做到零依赖。 Fast zero-dependency PSD par…

Windows上在DLL中嵌入自定义/XML文件

Windows上在DLL中嵌入自定义文件&#xff08;如&#xff1a;xml文件&#xff09; 1、前言 最近都在开发适配Genicam项目&#xff0c;在开发CTI&#xff08;Windows上可以看作DLL&#xff09;时发现需要将多个XML文件嵌入到DLL文件中方便内部代码调用。 2、前期准备 一个xml…

StarRocks x Paimon 构建极速实时湖仓分析架构实践

Paimon 介绍 Apache Paimon 是新一代的湖格式&#xff0c;可以使用 Flink 和 Spark 构建实时 Lakehouse 架构&#xff0c;以进行流式处理和批处理操作。Paimon 创新性地使用 LSM&#xff08;日志结构合并树&#xff09;结构&#xff0c;将实时流式更新引入 Lakehouse 架构中。 …

ChatGPT/GLM API使用

模型幻觉问题 在自然语言处理领域&#xff0c;幻觉&#xff08;Hallucination&#xff09;被定义为生成的内容与提供的源内容无关或不忠实&#xff0c;具体而言&#xff0c;是一种虚假的感知&#xff0c;但在表面上却似乎是真实的。产生背景 检索增强生成&#xff08;RAG&…

QT入门:计算圆面积的QT开始以及日历相关

QT入门&#xff1a;计算圆面积的QT开始以及日历相关 使用的工具为Qt creator 如图所示的为Qt的一个基本目录&#xff0c;首先打开mainwindow.ui进行设计&#xff0c;首先是讲解日历的&#xff0c;可以完全不用写代码&#xff0c;只在mainwindow.ui即可实现。 这是最后的一个成…

JRT质控打印

最近客户端打磨完了&#xff0c;又来推进质控了。之前演示的打印都是Demo示例&#xff0c;这次真正的写质控图的打印&#xff0c;数据就是质控数据录入界面录入的数据。其中质控图打印应该算最复杂的类型了。涉及JS的绘图&#xff0c;打印表格等&#xff0c;表格比较简单、还没…

DRF学习之DRF初识

一.Web应用两种开发模式 1、前后端不分离模式 也叫前后端混合开发模式, 需要后端写模板语言(DTL), 返回的是HTML页面&#xff0c;比如有BBS项目&#xff0c;图书管理系统。 在前后端不分离的项目中&#xff0c;模板渲染通常是在后端完成的。这种项目结构中&#xff0c;后端负…