JAVAMAP和Set相关习题8

1.字符串中第一个只出现一次字符

class Solution {public int firstUniqChar(String s) {int[] count=new int[26];for(int i=0;i<s.length();i++){char ch=s.charAt(i);count[ch-'a']++;}for(int i=0;i<s.length();i++){char ch=s.charAt(i);if(count[ch-'a']==1){return i;}}return -1;}  
}

387. 字符串中的第一个唯一字符 - 力扣(LeetCode)

2. 只出现一次的数字

136. 只出现一次的数字 - 力扣(LeetCode)

class Solution {public int singleNumber(int[] nums) {Set<Integer> set=new HashSet<>();for(int i=0;i<nums.length;i++){if(set.contains(nums[i])){set.remove(nums[i]);}else{set.add(nums[i]);}}for(int i=0;i<nums.length;i++){if(set.contains(nums[i])){return nums[i];}}return -1;}
}

 3.随机链表的复制

138. 随机链表的复制 - 力扣(LeetCode)

/*
// Definition for a Node.
class Node {int val;Node next;Node random;public Node(int val) {this.val = val;this.next = null;this.random = null;}
}
*/class Solution {public Node copyRandomList(Node head) {HashMap<Node,Node> map=new HashMap<>();Node cur=head;while(cur !=null){Node node=new Node(cur.val);map.put(cur,node);cur=cur.next;}cur=head;while(cur!=null){map.get(cur).next=map.get(cur.next);map.get(cur).random=map.get(cur.random);cur=cur.next;}return map.get(head);}
}

 4.宝石与石头

771. 宝石与石头 - 力扣(LeetCode)

class Solution {public int numJewelsInStones(String jewels, String stones) {Set<Character> set=new HashSet<>();for(char ch:jewels.toCharArray()){set.add(ch);}int count=0;for(char ch:stones.toCharArray()){if(set.contains(ch)){count++;}}return count;}
}

5.坏键盘

旧键盘 (20)__牛客网 (nowcoder.com)

import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseString s1=in.nextLine();String s2=in.nextLine();func(s1,s2);}}public static void func(String s1,String s2){Set<Character> set=new HashSet<>();for(char ch:s2.toUpperCase().toCharArray()){set.add(ch);}Set<Character> set1=new HashSet<>();for(char ch:s1.toUpperCase().toCharArray()){if(!set.contains(ch)&&!set1.contains(ch)){System.out.print(ch);set1.add(ch);}}}
}

6.前k个高频单词

692. 前K个高频单词 - 力扣(LeetCode)

1.统计每个单词出现的次数

2.放入优先级队列中(建立小根堆)

public List<String> topKFrequent(String[] words, int k) {//1、统计每个单词出现的次数Map<String,Integer> map = new HashMap<>();for (String word : words) {if(map.get(word) == null) {map.put(word,1);}else {int val = map.get(word);map.put(word,val+1);}}//2、建立小根堆,指定比较的方式PriorityQueue<Map.Entry<String,Integer>> minHeap = new PriorityQueue<>(new Comparator<Map.Entry<String, Integer>>() {@Overridepublic int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {if(o1.getValue().compareTo(o2.getValue()) == 0) {//按照字母顺序建立大根堆return o2.getKey().compareTo(o1.getKey());}return o1.getValue()-o2.getValue();}});//3、遍历map 调整优先级队列for(Map.Entry<String,Integer> entry: map.entrySet()) {if(minHeap.size() < k) {minHeap.offer(entry);}else {Map.Entry<String,Integer> top = minHeap.peek();//如果当前频率相同if(top.getValue().compareTo(entry.getValue()) == 0) {// 字母顺序小的进来if(top.getKey().compareTo(entry.getKey()) > 0) {//出队minHeap.poll();minHeap.offer(entry);}}else {if(top.getValue().compareTo(entry.getValue()) < 0) {minHeap.poll();minHeap.offer(entry);}}}}List<String> ret = new ArrayList<>();for (int i = 0; i < k; i++) {Map.Entry<String,Integer> top  = minHeap.poll();ret.add(top.getKey());}Collections.reverse(ret);return ret;}

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

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

相关文章

通过物联网管理多台MQTT设备-基于米尔T527开发板

本篇测评由电子工程世界的优秀测评者“JerryZhen”提供。 本文将介绍基于米尔电子MYD-LT527开发板的网关方案测试。 一、系统概述 基于米尔-全志 T527设计一个简易的物联网网关&#xff0c;该网关能够管理多台MQTT设备&#xff0c;通过MQTT协议对设备进行读写操作&#xff0c;…

找不到或无法加载主类 com.ruoyi.RuoYiApplication

若依项目&#xff0c;很久不启动&#xff0c;莫名其妙报错 找不到或无法加载主类 com.ruoyi.RuoYiApplication 解决方式 参考文章 找不到或无法加载主类_错误: 找不到或无法加载主类 com.ruoyi.ruoyiapplication-CSDN博客

pytest + yaml 框架 - 录制接口转 yaml 用例实现

pytest yaml 框架基本不用写 python 代码&#xff0c;只需写yaml 文件用例就能实现接口自动化。 现在引入接口录制功能&#xff0c;连 yaml 文件也不用写了&#xff0c;点点点就能生成 yaml 用例文件了。 录制功能在v1.3.4版本上实现 pip instal pytest-yaml-yoyo 环境准备 …

yo!这里是socket网络编程相关介绍

目录 前言 基本概念 源ip&&目的ip 源端口号&&目的端口号 udp&&tcp初识 socket编程 网络字节序 socket常见接口 socket bind listen accept connect 地址转换函数 字符串转in_addr in_addr转字符串 套接字读写函数 recvfrom&&a…

如何同时或者按顺序间隔启动多个程序

首先&#xff0c;需要用到的这个工具&#xff1a; 度娘网盘 提取码&#xff1a;qwu2 蓝奏云 提取码&#xff1a;2r1z 1、打开工具&#xff0c;切换到定时器模块&#xff0c;快捷键&#xff1a;Ctrl3 2、新建一个定时器&#xff0c;我这里演示同时打开多个程序&#xff08;比…

棱镜七彩参编《网络安全技术 软件供应链安全要求》国家标准发布

据全国标准信息公共服务平台消息显示&#xff0c;《网络安全技术 软件供应链安全要求》&#xff08;GB/T 43698-2024&#xff09;国家标准已于2024年4月25日正式发布&#xff0c;并将于2024年11月1日正式实施。棱镜七彩作为主要编制单位之一参与该国家标准的编制&#xff0c;为…

标准引领 | 竹云参编《面向云计算的零信任体系》行业标准正式发布!

近日&#xff0c;中华人民共和国工业和信息化部公告2024年第4号文件正式发布行业标准&#xff1a;YD/T 4598.1-2024《面向云计算的零信任体系 第1部分&#xff1a;总体架构》&#xff08;后简称“总体架构”&#xff09;&#xff0c;并于2024年7月1日起正式实施。 该标准汇集大…

5.神经网络-激活函数

目录 1. 激活函数不是阶跃函数 1.1 激活函数和阶跃函数都是非线性函数 1.2 激活函数不是阶跃函数 2. sigmoid 函数 2.1 sigmoid 函数表达式 2.2 sigmoid 函数 Python 实现 2.4 sigmoid 函数图 3. ReLU 函数 3.1 ReLU 函数表达式 3.2 ReLU 函数 Python 实现 3.4 ReLU…

重写muduo之TcpServer

目录 1、Callbacks.h 2、TcpServer.h 3、TcpServer.cc 1、Callbacks.h 回调操作 #pragma once#include <memory> #include <functional>class Buffer; class TcpConnection;using TcpConnectionPtrstd::shared_ptr<TcpConnection>; using ConnectionCall…

【class5】建立人工智能系统(2)

【昨日内容复习】 进行监督学习时&#xff0c;第一个步骤是提取数据集的文本特征和对应的标签。 提取文本特征的具体步骤如下&#xff1a; STEP1. 构造词袋模型&#xff0c;提取数据集中的文本特征 STEP2. 使用toarray()函数&#xff0c;将X转换为一个NumPy数组&#xff0c;方…

74从零开始学Java之排序算法中的冒泡和选择排序

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们要想成为一个优秀的程序员,其实非常关键的一点就是要锻炼培养自己的编程思维,就好比一个狙击手,要通过大量的射击训练要用大量的子弹喂出来。同样的…

Linux(centos7)系统配置 ntpd服务设置时间同步

一 、应用场景 两台服务器,要求使他们时间同步,有人问为什么要时间同步?如果一个集群中,时间相差很大,那么会出现很多诡异的问题,你也不想在一个无法解决的问题上浪费几天时间吧!总之,设置服务器之间时间同步,为了避免很多问题的发生! ntpd(Network Time Protocol …