算法题集锦go、java

1.两数之和

func twoSum(nums []int, target int) []int {hashTable := map[int]int{}for i,x := range(nums){if p,ok := hashTable[target-x];ok{return []int{p,i}}hashTable[x]=i}return nil
}
class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer,Integer> hashtable = new HashMap<Integer,Integer>();for(int i=0;i<nums.length;i++){if(hashtable.containsKey(target-nums[i])){return new int[]{hashtable.get(target-nums[i]),i};}hashtable.put(nums[i],i);}return new int[0];}
}

回文数

func isPalindrome(x int) bool {if x<0 || (x %10 ==0 && x!=0){return false}revertedNumber := 0for x > revertedNumber {revertedNumber = revertedNumber * 10 + x%10x /= 10}return x == revertedNumber || x==revertedNumber/10
}
class Solution {public boolean isPalindrome(int x) {if (x <0 || (x %10 == 0 && x !=0)){return false;}int revertedNumber = 0;while (x>revertedNumber){revertedNumber = revertedNumber *10 + x%10;x /=10;}return x == revertedNumber || x==revertedNumber/10;}
}

罗马数字转整数串

func romanToInt(s string) int {var symbolValues = map[byte]int{'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000}n := len(s)var ans = 0for i := range(s){value := symbolValues[s[i]]if i < n-1 && value < symbolValues[s[i+1]]{ans -= value}else{ans+=value}}return ans}
class Solution {Map<Character, Integer> symbolValues = new HashMap<>(){{put('I',1);put('V',5);put('X', 10);put('L', 50);put('C', 100);put('D', 500);put('M', 1000);}};public int romanToInt(String s) {int ans = 0;int n =s.length();for (int i = 0;i<n;i++){int value = symbolValues.get(s.charAt(i));if (i <n-1 && value < symbolValues.get(s.charAt(i+1))){ans -= value;}else{ans +=value;}}return ans;}
}

最长公共前缀

func longestCommonPrefix(strs []string) string {if len(strs) == 0{return ""}firststr := strs[0]n := len(firststr)for i:=0;i<n;i++ {for j:=1;j<len(strs);j++{if (len(strs[j]) <= i || strs[j][i] !=firststr[i]){return firststr[:i]}}}return firststr
}

有效的括号

class Solution {public String longestCommonPrefix(String[] strs) {if (strs == null || strs.length == 0){return "";}String prefix = strs[0];int n = prefix.length();for(int i=0;i<n;i++){for (int j=1;j<strs.length;j++){if (strs[j].length() <= i || strs[j].charAt(i) != prefix.charAt(i)){return prefix.substring(0,i);}}}return prefix;}
}
func isValid(s string) bool {var n int = len(s)if (n%2==1){return false}pairs := map[byte]byte{')':'(',']':'[','}':'{'}stack := []byte{}for _,c := range []byte(s){if _ ,ok := pairs[c];ok{if len(stack)==0 || stack[len(stack)-1] != pairs[c]{return false}stack=stack[:len(stack)-1]}else{stack = append(stack,c)}}return len(stack) == 0
}

合并两个有序列表

/*** Definition for singly-linked list.* type ListNode struct {*     Val int*     Next *ListNode* }*/
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {dummy := &ListNode {}cur := dummyfor list1 != nil && list2 != nil{if list1.Val < list2.Val{cur.Next = list1list1=list1.Next}else{cur.Next = list2list2=list2.Next}cur = cur.Next}if list1 != nil{cur.Next=list1}else{cur.Next = list2}return dummy.Next}
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {ListNode dummy = new ListNode();ListNode cur = dummy;while (list1 != null && list2 != null) {if (list1.val<list2.val){cur.next = list1;list1 = list1.next;}else{cur.next = list2;list2 = list2.next;}cur = cur.next;}if (list1 != null){cur.next = list1;}else{cur.next = list2;}return dummy.next;}
}
/*** Definition for singly-linked list.* type ListNode struct {*     Val int*     Next *ListNode* }*/
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {if list1 == nil {return list2}if list2 == nil {return list1}if list1.Val <list2.Val{list1.Next=mergeTwoLists(list1.Next,list2)return list1}list2.Next = mergeTwoLists(list1,list2.Next)return list2}
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode mergeTwoLists(ListNode list1, ListNode list2) {if (list1 == null) {return list2;}if (list2 == null){return list1;}if (list1.val < list2.val){list1.next = mergeTwoLists(list1.next,list2);return list1;}else{list2.next = mergeTwoLists(list1,list2.next);return list2;}}
}

删除有序数组中的重复项

func removeDuplicates(nums []int) int {var i,j intj=0for i=1;i<len(nums);i++ {if nums[i]!=nums[j]{j+=1nums[j]=nums[i]}}return j+1
}
class Solution {public int removeDuplicates(int[] nums) {int j = 0;for (int i=0;i< nums.length;i++){if (nums[i] != nums[j]){j+=1;nums[j]=nums[i];}}return j+1;}
}

移除元素

class Solution {public static int removeElement(int[] nums, int val) {int j = 0;for(int i=0;i<nums.length;i++){if(nums[i] !=val){nums[j]=nums[i];j+=1;}}return j;}
}
func removeElement(nums []int, val int) int {j := 0for i := 0;i<len(nums);i++{if nums[i]!=val{nums[j]=nums[i]j+=1}}return j
}

找出字符串中第一个匹配项的下标

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

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

相关文章

夹耳式蓝牙耳机哪个牌子最好?夹耳式耳机推荐性价比排行榜

耳夹式耳机既不堵耳孔、也不需要包覆耳廓&#xff0c;佩戴时看起来更像是一个“耳环”&#xff0c;固定方式也类似“夹耳朵”。不过&#xff0c;它并不是真的夹住了耳朵肉&#xff0c;而是半夹、半挂——依靠耳廓边缘厚、里面薄&#xff0c;且有一定的弯折面的特殊构造&#xf…

网络层协议 —— IP协议

目录 0.前言 1.IP协议的格式 2.IP地址 2.1IP地址的划分 国际间IP地址的划分 公有IP 私有IP 特殊的IP地址 国内IP地址的划分 2.2IP地址不足问题 2.3IP地址的功能 2.4如何使用IP地址 2.5IP地址的构成 3.网段划分 以前的方案 现在的方案 4.认识宏观网络 5.路由 …

边缘智能-大模型架构初探

R2Cloud接口 机器人注册 请求和应答 注册是一个简单的 HTTP 接口&#xff0c;根据机器人/用户信息注册&#xff0c;创建一个新机器人。 请求 URL URLhttp://ip/robot/regTypePOSTHTTP Version1.1Content-Typeapplication/json 请求参数 Param含义Rule是否必须缺省roboti…

[vulnhub] Hackademic.RTB1

第一次打靶机&#xff0c;思路看的红队笔记 https://www.vulnhub.com/entry/hackademic-rtb1,17/ 环境&#xff1a;kali Linux - 192.168.75.131&#xff0c;靶机 - 192.168.75.132 主机发现和端口扫描 扫描整个网络有哪台机子在线&#xff0c;不进行端口扫描 nmap -sP 192.16…

竹云赋能“中国·贵州”全省统一移动应用平台建设,打造政务服务“新引擎”

近日&#xff0c;2024中国国际大数据产业博览会在贵州贵阳圆满落幕。会上&#xff0c;由贵州省政府办公厅牵头建设的“中国贵州”全省统一移动应用平台正式发布&#xff0c;聚焦民生办事、政务公开、政民互动、扁平高效、数据赋能五大模块&#xff0c;旨在打造公平普惠的服务平…

【2020工业图像异常检测文献】PaDiM

PaDiM: a Patch Distribution Modeling Framework for Anomaly Detection and Localization 1、Background 在单类学习&#xff08;仅使用正常数据&#xff08;即“单一类”&#xff09;来训练模型&#xff09;环境中的异常检测和定位任务方法中&#xff0c;要么需要深度神经网…

ubuntu 安装minikube,并拉取k8s镜像

虚拟机是vmware17, 系统是ubuntu20.4&#xff0c; minikube是1.23.1&#xff0c; docker是24.0.7&#xff0c; 为什么要装minikube&#xff0c;通常k8s集群是要3台机子以上&#xff0c;而通过minikube&#xff0c;可以在一台机子上搭建出k8s集群&#xff0c;minikube采用的是D…

【深入学习Redis丨第六篇】Redis哨兵模式与操作详解

〇、前言 哨兵是一个分布式系统&#xff0c;你可以在一个架构中运行多个哨兵进程&#xff0c;这些进程使用流言协议来接收关于Master主服务器是否下线的信息&#xff0c;并使用投票协议来决定是否执行自动故障迁移&#xff0c;以及选择哪个Slave作为新的Master。 文章目录 〇、…

【环境踩坑系列】centos7安装python3.10.X

前言 虽然centOS8已经发布了相当一段时间了&#xff0c;但是基于稳定性、成熟的社区等原因&#xff0c;大家在选择centOS作为服务器操作系统的时候仍然会选择centOS7作为首选。但是centOS7自带的是python2.7.5&#xff0c;当前大量的python程序要用到的又是python3&#xff0c…

基于SSM的“银发在线教育云平台”的设计与实现(源码+数据库+文档)

基于SSM的“银发在线教育云平台”的设计与实现&#xff08;源码数据库文档) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 首页页面图 健身养生详情页面 在线课堂界面 …

RocketMQ实战与集群架构详解

目录 一、MQ简介 MQ的作用主要有以下三个方面 二、RocketMQ产品特点 1、RocketMQ介绍 2、RocketMQ特点 三、RocketMQ实战 1、快速搭建RocketMQ服务 2、快速实现消息收发 1. 命令行快速实现消息收发 2. 搭建Maven客户端项目 3、搭建RocketMQ可视化管理服务 4、升级分…

ubuntu安装libtorch

Ubuntu20.04安装libtorch 〇、前期准备1、查看NVIDIA显卡算力和CUDA版本支持的算力2、查看CUDA与显卡驱动的版本对应 一、NVIDIA显卡驱动安装1、下载显卡驱动2、安装驱动A. 安装依赖B. 禁用nouveau驱动C. 显卡驱动安装 3、参考 二、CUDA安装1、下载安装CUDA2、测试CUDA是否安装…

大语言模型-教育方向数据集

大语言模型-教育方向数据集 编号论文数据集1Bitew S K, Hadifar A, Sterckx L, et al. Learning to Reuse Distractors to Support Multiple-Choice Question Generation in Education[J]. IEEE Transactions on Learning Technologies, 2022, 17: 375-390.Televic, NL, https…

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含三个部分&#xff1a; (1).数据域&#xff1a;存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性&#xff1a; 双向链接: 与单向链表…

连锁多门店收银系统源码

近年来&#xff0c;越来越多的零售行业从业者意识到&#xff0c;线下线上全渠道整合将成为国内消费市场的大趋势&#xff0c;其中&#xff0c;线下门店能够赋予品牌发展的价值依然不可小觑。 1. 线下连锁门店发展方向&#xff0c;多种经营模式 新零售时代&#xff0c;基于品牌…

excel导出图片---HSSFWorkbook--SXSSFWorkbook

1 概述 平时在工作中&#xff0c;excel导出图片经常会用到&#xff0c;但奈何HSSFWorkbook导出数据数量有限制问题&#xff0c;所以企业里大多都用SXSSFWorkbook格式&#xff0c;很少用HSSFWorkbook。所以今天以这两种格式分别记录下&#xff0c;图片的导出过程。 2 HSSFWork…

Reddit账号太多?一文教你轻松管理

想要在Reddit上扩大品牌影响力&#xff0c;但不知道如何管理多个账号&#xff1f;面对复杂的社区规则&#xff0c;你是否在担心账号安全&#xff1f;渴望提升参与度&#xff0c;却对内容策略一筹莫展&#xff1f;本文将为你揭秘如何高效管理你的Reddit账号&#xff0c;让你在这…

PR快速片段分割教程

方法一&#xff1a; 方法二yyds&#xff1a; ctrla全选&#xff0c;拽过来ME导出即可。

周文强:我感受到了海口经济学院创新创业的热情

日前&#xff0c;由中国志愿服务基金会、中国志愿服务基金会汇成百年专项基金以及共青团海口市委员会主办&#xff0c;共青团海口经济学院委员会承办的“2024 首届青领杯大学生创新创业大赛”海口站线下培训在海口经济学院开展。汇成百年专项基金发起人周文强作为本次大赛的创业…

ReadWriteLock读写锁

读写锁基本概念 ReadWriteLock是Java并发包中的一个接口&#xff0c;它定义了两种锁&#xff1a;读锁&#xff08;Read Lock&#xff09;和写锁&#xff08;Write Lock&#xff09;&#xff0c;真正的实现类是ReentrantReadWriteLock。读锁允许多个线程同时读取共享资源&#…