牛客NC278 删除链表中重复的结点【中等 链表 Java,Go,PHP】

题目

在这里插入图片描述
题目链接:
https://www.nowcoder.com/practice/fc533c45b73a41b0b44ccba763f866ef

这题有一次面试某团的第一道题

思考

链表的基本操作

参考答案Java

import java.util.*;
/*public class ListNode {int val;ListNode next = null;ListNode(int val) {this.val = val;}
}
*/
public class Solution {public ListNode deleteDuplication(ListNode pHead) {//map统计重复节点Map<Integer, Integer> cnt = new HashMap<>();ListNode cur = pHead;while (cur != null) {int k = cur.val;if (!cnt.containsKey(k))cnt.put(k, 0);cnt.put(k, cnt.get(k) + 1);cur = cur.next;}ListNode newNode = new ListNode(-1);ListNode tmp = newNode;cur = pHead;while (cur != null) {int k = cur.val;ListNode next = cur.next;if (cnt.get(k) == 1) {cur.next = null;tmp.next = cur;tmp = cur;}cur = next;}return newNode.next;}
}

参考答案Go

package mainimport . "nc_tools"/** type ListNode struct{*   Val int*   Next *ListNode* }*//*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** @param pHead ListNode类* @return ListNode类*/
func deleteDuplication(pHead *ListNode) *ListNode {//map统计节点cnt := map[int]int{}cur := pHeadfor cur != nil {_, ok := cnt[cur.Val]if !ok {cnt[cur.Val] = 0}cnt[cur.Val] = cnt[cur.Val] + 1cur = cur.Next}newNode := &ListNode{-1, nil}tmp := newNodecur = pHeadfor cur != nil {k := cur.Valnext := cur.Nextif cnt[k] == 1 {cur.Next = niltmp.Next = curtmp = cur}cur = next}return newNode.Next
}

参考答案PHP

<?php/*class ListNode{var $val;var $next = NULL;function __construct($x){$this->val = $x;}
}*//*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* * @param pHead ListNode类 * @return ListNode类*/
function deleteDuplication( $pHead )
{//map统计次数$cnt = array();$cur =$pHead;while ($cur!=null){$k = $cur->val;if(!isset($cnt[$k])){$cnt[$k] = 0;}$cnt[$k]+=1;$cur = $cur->next;}$newNode = new ListNode(-1);$tmp = $newNode;$cur = $pHead;while ($cur!=null){$k = $cur->val;$next = $cur->next;if($cnt[$k] ==1){$cur->next = null;$tmp->next = $cur;$tmp=$cur;}$cur = $next;}return $newNode->next;
}

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

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

相关文章

【Linux杂货铺】进程的基本概念

目录 &#x1f308;前言&#x1f308; &#x1f4c1;进程的概念 &#x1f4c2;描述进程-PCB &#x1f4c2; 查看进程 &#x1f4c2; 查看正在运行的程序 &#x1f4c2;杀死进程 &#x1f4c2;通过系统调用获取进程标识符 &#x1f4c2;通过系统调用创建进程 &#x1f…

MongoDB聚合运算符:$first

文章目录 语法使用定义文档顺序数组操作缺失值的处理 举例数据缺失的情况在$setWindowFields阶段中使用 $first聚合运算符返回分组中第一个文档指定表达式的结果&#xff0c;只有分组文档是有序的情况下才有意义。 $first可用于下列阶段&#xff1a; $bucket$bucketAuto$grou…

初阶结构体

在这篇文章中我们只讲一些结构体的一些基础的知识&#xff0c;后续会继续补充关于结构体的高阶知识。 1.结构体声明 1.1结构体的基本知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个成员可以是不同类型的变量。 结构可以用来描述复杂对象&#xff0c;在…

day10-SpringBootWeb案例-1

一、准备工作 1 需求&环境搭建 步骤&#xff1a; 准备数据库表(dept、emp)创建 springboot 工程&#xff0c;引入对应的起步依赖&#xff08;web、mybatis、mysql 驱动、lombok&#xff09;配置文件 application.properties 中引入 mybatis 的配置信息&#xff0c;准备对应…

CI/CD实战-gitlab代码仓库 2

gitlab安装部署 实验虚拟机最小需求&#xff1a;4g内存&#xff0c;4核cpu 下载源&#xff1a;Index of /gitlab-ce/yum/el7/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 安装依赖性&#xff1a; 安装软件&#xff1a; 修改依赖性配置文件 重新自动化配置 登录…

如何在 iPhone 上使用蓝牙鼠标

iPhone 不支持使用传统的鼠标指针。 然而&#xff0c;有一个名为“AssistiveTouch”的功能可以在屏幕上模拟类似光标的指针。 启用它的方法如下&#xff1a; 打开 iPhone 上的“设置”应用程序。转到“辅助功能”。向下滚动并选择“触摸”。点击“辅助触控”。切换开关以打开 …

Rust 01.变量、类型、函数

转义输出&#xff1a; fn main() {let a 12;println!("a {{{}}}", a); } //a {12}type let is_true: bool true;println!("is_true {}", is_true);let is_false false;println!("is_false {}, {}", is_false, is_true);//char 在rust里面…

快速排序(数据结构)

1. 前言&#xff1a; 这两种排序经常使用&#xff0c;且在算法题中经常遇见。 这里我们简单分析讨论一下。 1. 快速排序 平均时间复杂度&#xff1a;O&#xff08;nlogn&#xff09; 最坏时间复杂度&#xff1a; O&#xff08;n^2&#xff09; 1.1. 左右向中遍历: 取最右侧4…

MiniGPT-5: 通过生成性视觉标记实现交错式视觉与语言生成

MiniGPT-5: Interleaved Vision-And-Language Generation via Generative Vokens 摘要 近年来&#xff0c;大型语言模型(LLM)在自然语言处理(NLP)领域的突破性进展引起了全球AI开发者的关注。这些模型在文本生成和理解方面设定了新的基准。然而&#xff0c;尽管在文本生成方面…

HarmonyOS NEXT应用开发—发布图片评论

介绍 本示例将通过发布图片评论场景&#xff0c;介绍如何使用startAbilityForResult接口拉起相机拍照&#xff0c;并获取相机返回的数据。 效果图预览 使用说明 通过startAbilityForResult接口拉起相机&#xff0c;拍照后获取图片地址。 实现思路 创建CommentData类&#…

Linux TCP参数——tcp_abort_on_overflow

tcp_abort_on_overflow 英文翻译理解&#xff1a;溢出中止 所以&#xff0c;溢出指的是什么溢出&#xff1f; Linux中会维护socket全连接队列&#xff0c;所以这里的溢出指的是全连接队列的溢出。 全连接队列是什么&#xff1f; 全连接队列指的就是TCP三次握手中的第三次握手…

腾讯云轻量应用服务器2核4G5M代表什么意思?

腾讯云服务器2核4G5M带宽配置是代表什么&#xff1f;代表2核CPU、4G内存、5M公网带宽&#xff0c;这是一款轻量应用服务器&#xff0c;系统盘为60GB SSD云硬盘&#xff0c;活动页面 txybk.com/go/txy 活动打开如下图&#xff1a; 腾讯云2核4G5M服务器 如上图所示&#xff0c;这…

sqllab第29-33通关笔记

29关知识点&#xff1a; 单引号闭合绕过联合注入 payload:id0%27unionselect1,2,database()%271报错注入 id1%27andextractvalue(1,concat(0x7e,database(),0x7e))%271下面就不演示了&#xff0c;上面给出了payload&#xff0c;感觉没有任何过滤信息&#xff0c;那个waf应该是…

嵌入式系统架构设计

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/136745118 一. 嵌入式系统硬件 1、传统嵌入式系统主要硬件包括&#xff1a; ● 微处理器&#xff1a;微控制器&#xff08;MCU&#xff09;&#xff0c;微处理器&#xff08;MPU&#xff09; ● 存储器…

HCIA——TCP协议详解

目录 1、TCP概念及协议头部格式 1.1TCP特点 1.2TCP协议协议头部格式 1.3字段进行介绍 1.3.1源端口和目的端口 1.3.2序号(seq) 1.3.3确认序号(ack) 1.3.4数据偏移 1.3.5标志位 1.3.6窗口 1.3.7校验和 1.3.8紧急指针 2、TCP的可靠性 2.1 TCP可靠性的保障 2.2排序机…

Android Studio实现内容丰富的安卓博客发布平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 项目编号078 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登录 2.查看博客列表 3.查看博客详情 4.评论博客&#xff0c; 5.…

Winform编程详解十:ListBox 列表框

一、属性介绍 1. (Name) 控件的对象标识符ID 2. Items 控件的数据集合 3. BackColor 控件的背景颜色 4. BorderStyle 控件的边框样式 5. Cursor 鼠标移过该控件显示的光标样式 6. Font 控件的字体样式 7. ForeColor 控件的文本颜色 8. UseWaitCursor 使用鼠标的等待光…

Llama 2: 深入探讨ChatGPT的开源挑战者

Llama 2&#xff1a;开源挑战者深度解析 摘要 本文深入探讨了Llama 2的能力&#xff0c;并提供了在Google Colab上通过Hugging Face和T4 GPU设置这个高性能大型语言模型的详细指南。Llama 2是由Meta与Microsoft合作开发的开源大型语言模型&#xff0c;旨在重新定义生成式人工…

HBase在表操作--显示中文

启动HBase后&#xff0c;Master和RegionServer两个服务器&#xff0c;分别对应进程为HMaster和HRegionServe。&#xff08;可通过jps查看&#xff09; 1.进入表操作 hbase shell 2.查看当前库中存在的表 list 3.查看表中数据&#xff08;注&#xff1a;学习期间可用&#…

RUST egui部署到github

Dist 接上文&#xff0c;当用trunk serve编译部署后&#xff0c;工程目录下就会有一个dist目录&#xff0c;这个目录就是用来部署用的。 &#xff1a;&#xff09; Github repo 创建一个github repo&#xff0c;这个repo的名称有固定格式要求&#xff0c;就是你自己的用户名…