160. 存在重复元素

难度:简单

收藏

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false

示例 1:

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

示例 2:

输入:nums = [1,2,3,4]
输出:false

示例 3:

输入:nums = [1,1,1,3,3,4,3,2,4,2]
输出:true

提示:

  • 1 <= nums.length <= 105
  • -109 <= nums[i] <= 109
class Solution:def containsDuplicate(self, nums: List[int]) -> bool:if len(nums)!=len(set(nums)):return Trueelse:return False

33. 有效的数独

难度:中等

收藏

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。

  1. 数字 1-9 在每一行只能出现一次。
  2. 数字 1-9 在每一列只能出现一次。
  3. 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)

注意:

  • 一个有效的数独(部分已被填充)不一定是可解的。
  • 只需要根据以上规则,验证已经填入的数字是否有效即可。
  • 空白格用 '.' 表示。

示例 1:

输入:board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
输出:true

示例 2:

输入:board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
输出:false
解释:除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。 但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。

提示:

  • board.length == 9
  • board[i].length == 9
  • board[i][j] 是一位数字(1-9)或者 '.'
class Solution:def isValidSudoku(self, board: List[List[str]]) -> bool:st=[False for i in range(9)]for i in range(9):st=[False for i in range(9)]for j in range(9):if board[i][j]!='.':t=eval(board[i][j])-1if st[t]:return Falsest[t] = Truefor i in range(9):st=[False for i in range(9)]for j in range(9):if board[j][i]!='.':t=eval(board[j][i])-1if st[t]:return Falsest[t]=Truefor i in range(0,9,3):for j in range(0,9,3):st=[False for i in range(9)]for x in range(3):for y in range(3):if board[i+x][j+y]!='.':t=eval(board[i+x][j+y])-1if st[t]:return Falsest[t] = Truereturn True

161. 存在重复元素 II

难度:简单

收藏

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 ij ,满足 nums[i] == nums[j]abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false

示例 1:

输入:nums = [1,2,3,1], k = 3
输出:true

示例 2:

输入:nums = [1,0,1,1], k = 1
输出:true

示例 3:

输入:nums = [1,2,3,1,2,3], k = 2
输出:false

提示:

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9
  • 0 <= k <= 10^5
class Solution:def containsNearbyDuplicate(self, nums: List[int], k: int) -> bool:has={}for i in range(len(nums)):x=nums[i]if has and x in has.keys() and i-has[x]<=k:return Truehas[x]=ireturn False

355. 宝石与石头

难度:简单

收藏

给你一个字符串 jewels 代表石头中宝石的类型,另有一个字符串 stones 代表你拥有的石头。 stones 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。

字母区分大小写,因此 "a""A" 是不同类型的石头。

示例 1:

输入:jewels = "aA", stones = "aAAbbbb"
输出:3

示例 2:

输入:jewels = "z", stones = "ZZ"
输出:0

提示:

  • 1 <= jewels.length, stones.length <= 50
  • jewelsstones 仅由英文字母组成
  • jewels 中的所有字符都是 唯一的
class Solution:def numJewelsInStones(self, jewels: str, stones: str) -> int:num=0for x in stones:if x in jewels:num+=1return num

\374. 子域名访问计数

难度:中等

收藏

网站域名 "discuss.leetcode.com" 由多个子域名组成。顶级域名为 "com" ,二级域名为 "leetcode.com" ,最低一级为 "discuss.leetcode.com" 。当访问域名 "discuss.leetcode.com" 时,同时也会隐式访问其父域名 "leetcode.com"以及 "com"

计数配对域名 是遵循 "rep d1.d2.d3""rep d1.d2" 格式的一个域名表示,其中 rep 表示访问域名的次数,d1.d2.d3 为域名本身。

  • 例如,"9001 discuss.leetcode.com" 就是一个 计数配对域名 ,表示 discuss.leetcode.com 被访问了 9001 次。

给你一个 计数配对域名 组成的数组 cpdomains ,解析得到输入中每个子域名对应的 计数配对域名 ,并以数组形式返回。可以按 任意顺序 返回答案。

示例 1:

输入:cpdomains = ["9001 discuss.leetcode.com"]
输出:["9001 leetcode.com","9001 discuss.leetcode.com","9001 com"]
解释:例子中仅包含一个网站域名:"discuss.leetcode.com"。
按照前文描述,子域名 "leetcode.com" 和 "com" 都会被访问,所以它们都被访问了 9001 次。

示例 2:

输入:cpdomains = ["900 google.mail.com", "50 yahoo.com", "1 intel.mail.com", "5 wiki.org"]
输出:["901 mail.com","50 yahoo.com","900 google.mail.com","5 wiki.org","5 org","1 intel.mail.com","951 com"]
解释:按照前文描述,会访问 "google.mail.com" 900 次,"yahoo.com" 50 次,"intel.mail.com" 1 次,"wiki.org" 5 次。
而对于父域名,会访问 "mail.com" 900 + 1 = 901 次,"com" 900 + 50 + 1 = 951 次,和 "org" 5 次。

提示:

  • 1 <= cpdomain.length <= 100
  • 1 <= cpdomain[i].length <= 100
  • cpdomain[i] 会遵循 "repi d1i.d2i.d3i""repi d1i.d2i" 格式
  • repi 是范围 [1, 104] 内的一个整数
  • d1id2id3i 由小写英文字母组成
class Solution:def subdomainVisits(self, cpdomains: List[str]) -> List[str]:cnt={}for str1 in cpdomains:k=str1.find(' ')a,b=str1.split(' ')a=int(a)str1=str1[k+1:]while True:try:cnt[str1] +=aexcept:cnt[str1] = ak=str1.find('.')if k==-1:breakstr1=str1[k+1:]res=[]for item in cnt:res.append(str(cnt[item])+' '+item)return res

leetcode基础编程:哈希表相关推荐

  1. LeetCode刷题——哈希表(python语言)

    LeetCode刷题--哈希表(python语言) 一.哈希表 1.1 哈希表的概念 哈希表,也叫散列表.其实可以很像python的字典,也就是键(key)值(Hash(key))对,最简单也最常用的 ...

  2. 04.openssl编程——哈希表

    4.1    哈希表 在一般的数据结构如线性表和树中,记录在结构中的相对位置与记录的关键字之间不存在确定的关系,在结构中查找记录时需要进行一系列的关键字比较.这一类查找方法建立在比较的基础上,查找的效 ...

  3. C#LeetCode刷题-哈希表

    哈希表篇 # 题名 刷题 通过率 难度 1 两数之和 C#LeetCode刷题之#1-两数之和(Two Sum) 42.8% 简单 3 无重复字符的最长子串   24.2% 中等 18 四数之和   ...

  4. LeetCode通关:哈希表六连,这个还真有点简单

    哈希表基础 哈希表也叫散列表,哈希表是一种映射型的数据结构. 哈希表是根据关键码的值而直接进行访问的数据结构. 就好像老三和老三的工位:有人来找老三,前台小姐姐一指,那个像狗窝一样的就是老三的工位. ...

  5. j - 数据结构实验:哈希表_一看就懂的数据结构基础「哈希表」

    哈希表 哈希表(Hash table),是存储键值(Key Value)对数据的一种数据结构. 例如,我们可以将人的名字作为键,性别作为值来存储.通过把键映射到表中的一个位置来访问数据,以提高查找速度 ...

  6. 数据结构基础(18) --哈希表的设计与实现

    哈希表 根据设定的哈希函数 H(key)和所选中的处理冲突的方法,将一组关键字映射到一个有限的.地址连续的地址集 (区间) 上,并以关键字在地址集中的"映像"作为相应记录在表中的存 ...

  7. 数据结构:哈希表(散列表)基础

    哈希表(散列表)基础 引入哈希表 什么是哈西表: 一种具有相同特性的数据元素的集合,每个元素具有唯一标识自己的关键字. 基本原理: 说明: 顺序查找.二分查找或者二叉树的查找是基于待查关键字与表中元素 ...

  8. DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台、刷题集合、问题为导向的十大类刷题算法(数组和字符串、栈和队列、二叉树、堆实现、图、哈希表、排序和搜索、动态规划/回溯法/递归/贪心/分治)总

    DSt:数据结构的最强学习路线之数据结构知识讲解与刷题平台.刷题集合.问题为导向的十大类刷题算法(数组和字符串.栈和队列.二叉树.堆实现.图.哈希表.排序和搜索.动态规划/回溯法/递归/贪心/分治)总 ...

  9. 【C语言】动手写一个哈希表

    引言 近来无聊,决定动手写点程序练练手,所以从最基础的哈希表数据结构开始,全程参考的此处的GitHub项目 环境 Window10 .nodepad++编辑器 .MinGW 编译器 第一次尝试搭建极简 ...

最新文章

  1. 985 博士:导师是院士,直到毕业,我们都没单独说过一句话...
  2. 大象喝水c语言程序,实现大象喝水(c语言)
  3. python怎么显示汉字_mac在matplotlib中显示中文的操作方法
  4. android的消息队列机制
  5. 《LeetBook》leetcode题解(5):Longest Palindromic [M]——回文串判断
  6. java基础—List集合的常规方法操作
  7. 为RedHat系统安装发布版的PostgreSQL数据库
  8. CentOS7.9 EDA软件,Cadence、Synopsys、Mentor、Ansys、Keysight、Matlab、Vivado和Quartus等工具虚拟机平台
  9. Python API接口压力测试简单实现(并发测试)
  10. 深信服测试开发日常实习岗位一面凉经(来自李某)
  11. 各种进制转换(二,八,十,十六进制间转换)详解附代码
  12. 基于魔兽RPG对当前游戏发展趋势的分析,以及尝试一个高游戏性玩法的设计
  13. 非功能性需求之性能需求分析
  14. 微信小程序动态点赞php,微信小程序小组件基于Canvas实现直播点赞气泡效果
  15. Project Professional安装:Windows Installer(MSI)与即点即用
  16. 伊鳗:让你每天获得持续客源的精准引流方法,只是做好这几步
  17. LWN: 使用BigBlueButton进行视频会议!
  18. 苹果手机拷贝功能 php,苹果iPhone上的“通用剪贴板”到底是什么?
  19. 西加加C++入门语法(与派森python相对应)
  20. 编程之类的文案_有什么让人瞬间充满希望的文案?

热门文章

  1. 对增量数据是否如期ETL的监控
  2. 你的最爱(网址收藏栏)
  3. 玉米社:营销推广软文_文章写作类型有哪些?
  4. 【C语言】数据类型存储、原码,反码,补码
  5. Go语言的string(底层结构+常用方法)
  6. android面试复习(自己总结的知识点,小生不才,望大能指点一二,只言片语,聊表心意)
  7. 根据marking 查找芯片
  8. k8s 部署android实例
  9. 在RedHat虚拟机下单/双引号打不出来的解决办法
  10. Java核心类库(上)