面试题 判断数组中是否存在两数和为100

如何快速判断一个数是否为2的倍数?(正整数) 牛牛有一个数组,里面的数可能不相等,现在他想把数组变为:所有的数都相等。牛牛可以进行的操作是:将数组中的任意一个数改为这个数的两倍。首先,如果一个数是2的倍数,此时该数都对应的二进制只存在唯一 一个1(比如8对应1000)。前面以及提到过,如果个数是2的倍数,此时该数的二进制只存在唯一的1,其余全为0。所以如果一个数为2的倍数,此时x&-x得到的结果任然为x。所以如果一个数为2的倍数,此时x & (x - 1)=0!,一旦出现模2结果非0的情况,则表明该数不是2的倍数! 阅读详情

题目: 设计一个算法判断一个数组中是否存在两个整数的和为100。

思路: 这个题目可能最直观的想法是先排序,然后通过两个指针一个从前往后一个从后往前移动,寻找合为100的两个整数。但是这个算法的时间复杂度为 O(nlogn),不是很理想。
推荐的思路还是采用HashMap,HashhMap常常能在数组查找类的算法中立神功。先一趟遍历,把所有的整数作为键,出现的次数作为值加到HashMap。然后依次遍历HashMap,每遍历一个键key就判断一下,100-key是都存在于该HashMap。

参考代码:

import java.util.HashMap;

public class SumIs100 {
    public boolean sum100(int[] array) {
        if (array == null) {
            return false;
        }
        if (array.length == 0) {
            return false;
        }
        HashMap<Integer, Integer> hashMap = new HashMap<>();
        for (int i = 0; i < array.length; i++) {
            if (hashMap.containsKey(array[i])) {
                hashMap.put(array[i], (int) hashMap.get(array[i]) + 1);
            } else {
                hashMap.put(array[i], 1);
            }
        }
        // for (Integer key :hashMap.keySet() ) {
        // System.out.println("key: " + key + " value: " + hashMap.get(key));
        // }
        for (Integer key : hashMap.keySet()) {
            if (hashMap.containsKey(100 - key))
                return true;
        }
        return false;
    }

    public static void main(String[] args) {
        int[] a = { 1, 2, 3, 81, 5, 97, 6 };
        SumIs100 sumIs100 = new SumIs100();
        if (sumIs100.sum100(a)) {
            System.out.println("存在等于100 的两个数");
        } else {
            System.out.println("不存在等于100的两个数");
        }
    }
}
云计算面试题知识汇总,云计算面试经验讲解 云计算岗位面试其实并没有很多人想的那么复杂,主要是电话面试,估计是面试的人比较少,简单的问了一些技术问题,在问了有一些商务对接方面的问题第一轮,技术面的时候,问了云计算的3个层面,云计算现在发展情况,商务面的时候,问了商务对接如何有效进行;第二轮,主要问做过什么项目,如何做项目,下面给大家分享几个实用的云计算面试题知识。 1、海量日志数据,提取出某日访问百度次数最多的那个IP。 IP是32位的,最... 阅读详情

相关推荐

给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。

问题描述   给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式   输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。   输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式   输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

LeetCode解题方法3-分治算法

1.题目 14 最长公共前缀 50 Pow(x, n) 2.思路 14题求n个字符串的最长公共前缀,可以分别求前n/2和后n/2的,通过递归来完成。 50题用了递归,也类似分治的思想 ...

u013947236的博客 550

给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1

问题描述   给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式   输入的第一行包含一个整数n,表示给定整数的个数。   第二行包含所给定的n个整数。 输出格式   输出一个整数,表示值正好相差1的数对的个数。

每日一刷:LeetCode.1 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/two-sum 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 双重循环一一匹配(暴力匹配) public class Solution { public int[] TwoSum(in

qq_43688703的博客 347

单细胞分析实录(12): 如何推断肿瘤细胞

公众号后台回复20210418,获取本文的测试数据 1. 回顾 前面我已经讲解了inferCNV的基本用法,这一节继续学习:如何推断肿瘤细胞。本文应该是到目前为止,全网最详细的帖子(之一)。 关于肿瘤细胞的推断,比如研究上皮细胞起源的肿瘤,我见过的一些做法如下 简单粗暴型:将来源肿瘤病灶的所有上皮细胞都看成是肿瘤细胞 看CNV:将来源于肿瘤病灶的上皮细胞和参考细胞比较,将那些有明显CNV的细胞看作肿瘤细胞 看表达特征:考虑到有的肿瘤细胞可能没有CNV层面的变化,有的文章会根据肿瘤与正常的表达谱来区分是.

TOP生物信息 1万+

从网格划分到结果解读:一次完整的子弹侵彻LS-DYNA仿真避坑指南

本文详细解析了子弹侵彻LS-DYNA仿真中的关键技术与避坑指南,涵盖网格优化、对称边界条件设置、沙漏控制参数调整及结果可信度验证。通过HyperMesh网格划分和LS-DYNA高级参数配置,帮助工程师提升仿真精度与效率,确保计算结果物理可信。

weixin_29816689的博客 406

计算数组里面有多少对数之和等于指定的数,数组元素可以相等(同一个元素重复出现),配对过的index不能再次配对

用例: 输入{1,1,99},100;返回1 输入{1,1,99,99},返回2 输入{5,8,1,9,10,99,2,3,98,98},100,返回2 static int countSum(int[] items, int sum) { //key item元素,value 元素的index HashMap<Integer, Integer> has...

qq372848728的博客 2627

使用电荷放大器处理压电加速度计输出

电阻器 R p模拟传感器的绝缘电阻,为产生的电荷创建泄漏路径。在此图中,顶部波形显示传感器产生的电荷,而底部波形显示电荷放大器的输出。这需要具有大输入阻抗的放大级,以防止产生的电荷通过与传感元件并联的放大器的输入阻抗泄漏。换句话说,电荷放大器补偿传感器产生的电荷 q p ,反馈电容器 C F中具有相反极性的等量电荷。因此,任何与传感器并联的绝缘电阻,如电缆的绝缘电阻或传感器的漏电电阻Rp,都不能流过电流。漂移是指电荷放大器输出在一段时间内发生的变化,而不是由被测物理参数的变化(我们讨论的加速度)引起的。

weixin_45260069的博客 3905

信息奥赛一本通1244:和为给定数

1244:和为给定数 【题目描述】 给出若干个整数,询问其中是否有一对数的和等于给定的数。 【输入】 第一行是整数n(0 < n ≤ 100,000),表示有n个整数。 第二行是n个整数。整数的范围是在00到108108之间。 第三行是一个整数m(0≤m≤230)m(0≤m≤230),表示需要得到的和。 【输出】 若存在和为m的数对,输出两个整数,小的在前,大的在后,中间用单个空格隔开。若有...

mengdicfm的博客 1245

用 SAP XCO XLSX 模块优雅读 Excel:坐标、选择模式与实战案例全解析

SAP ABAP Cloud 中的 XCO XLSX 模块为 Excel 文件处理提供了官方解决方案。文章介绍了三个核心概念:通过 XCO_CP_XLSX=>DOCUMENT 获取文档句柄;使用 CL_XCO_XLSX_COORDINATE 坐标系统定位单元格;利用 Selection Pattern 精确读取数据区域。这些功能在 RAP 批量导入等业务场景中尤为实用,相比传统方案更加简洁可靠。文章还分享了真实项目中的最佳实践,如动态列定位和相对偏移技巧,帮助开发者构建更健壮的 Excel 导入逻辑。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 193

基于滤波反投影的图像重建算法matlab仿真

基于滤波反投影的图像重建算法是一种用于医学影像重建的计算机辅助技术。该算法可以从投影数据中重建出高质量的三维图像,被广泛应用于医学影像学、CT、PET等领域。本文将详细介绍基于滤波反投影的图像重建算法的原理、步骤和应用。一、原理介绍基于滤波反投影的图像重建算法基于X射线CT成像原理,它的主要思想是通过对投影数据进行处理,反推出被成像物体的三维形状。其核心原理是投影数据与目标物体之间的线性关系,即通过估计目标物体的吸收率来计算投影数据的变化,从而反推出目标物体的三维形状。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 386

简单算法——哈希

哈希 哈希(Hash)也称为散列,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,这个输出值就是散列值。 哈希表 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 使用Hash的查询算法分为两步: ① 用Hash函数将被查找的键转化为数组的一个索引。 理想情况下,不同的键都能转化为不同的索引值。当然,这只是理想情况,

weixin_52233403的博客 1302

RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGB

RK3588, FFmpeg 拉流 RTSP, mpp 硬解码转RGB

J。 2339

判断数组中是否有存在重复值

<br />面试题:<br />      已知有一长度为100的无序随机整型数组,且数值范围是[1,100],写一算法,判断数组中是否有存在重复值,要求,不得嵌套循环,不得使用递归。<br />方法一: <br /> 1public bool CheckRepeat(int [] a)<br /> 2{<br /> 3        //定义一个数组测试用,思想:数组的下标和值都是上一个数组元素中的值<br /> 4         int [] array = new int [101] ;<br />

passball 1万+

【Autoware】2小时安装Autoware1.13(保姆级教程)

Autoware是一款“一体化”开源自动驾驶软件,能实现感知、决策、控制等功能,通过在Ubuntu中搭建Autoware开发环境和案例的运行,使大家对自动驾驶技术的实现有一个更清晰的认识。

DevFrank的博客 1万+

【毕设救星】从0到1打造YOLOv8货架商品检测与可视化系统,让你的毕设脱颖而出

本文介绍了一个基于YOLOv8的货架商品检测系统毕设项目。系统采用YOLOv8模型进行商品检测,包含环境搭建、数据集准备、模型训练与验证等完整流程,并开发了可视化UI界面。项目聚焦智能零售应用场景,技术栈完整且易于实现,适合作为计算机视觉方向的毕业设计。文章详细指导了从数据标注、模型训练到界面开发的全过程,提供代码示例和实用建议,帮助学生快速完成毕设并提升答辩表现。

LXY_LOVE36的博客 103

用100道题拿下你的算法面试(数组篇-01):两数之和,找出给定和的数对

本文探讨了判断数组中是否存在两数之和等于目标值的算法问题,并对比了四种解决方案:1)朴素方法(双循环遍历,O(n²)时间);2)排序后二分查找(O(nlogn)时间);3)排序后双指针法(O(nlogn)时间);4)哈希集合法(O(n)时间)。重点推荐使用哈希集合法,其通过存储已遍历元素并实时检查补数,在最优时间复杂度O(n)内解决问题。文章提供了JavaScript、C++、Java、Python、C#等多种语言的实现代码,并分析了各方法的时间/空间复杂度。其中哈希法在未排序数组中表现最佳,而双指针法适用

Raink老师的博客 1318

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

力扣热门100题【面试题01.01,268】

面试题01.01,268

EdgeAI的博客 1055

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

面试必问:如何在 100 亿个 URL 中快速判断某一个是否存在?

它极其自信: 它说“没有”,那就是真没有。它偶尔撒谎: 它说“有”,可能是假有。它极其吝啬: 存 10 亿条数据,它只需要几百 MB,而传统方式需要上百 GB。适用场景: 只要允许“小概率误判”,但对“空间”和“速度”要求极高的场景(垃圾邮件过滤、爬虫去重、缓存穿透)。

郑龙飞 604

一道面试题彻底理解HashMap——Hash冲突后为何还要判断key是否相等?

针对面试题"高效转换100个User对象为Map",给出优化方案: 初始化HashMap为134(100/0.75+1)避免扩容 直接遍历put,时间复杂度O(n) 本文深入剖析HashMap的底层实现机制,重点解答两个关键问题: Hash冲突后为何还要判断key是否相等? - 不同对象可能hash值相同,必须通过equals()严格验证唯一性 HashMap扩容机制 - 初始容量会被转换为大于指定值的最小2次幂(如134→256),扩容时容量翻倍

qq_52077555的博客 1062

面试题31:JS中判断是数组的四种方法

目录 第一种:Array.isArray 第二种:instanceof 第三种:通过constructor判断 instanceof和constructor的判定也存在一些弊端 第四种:通过Object.prototype.toString.call()判断 5.补充:typeof 第一种:Array.isArray 原理:Array.isArray()用于确定传递的值是否是一个数组,返回一个布尔值 const arr = [1,2,3,4] console.log(Arra..

qq_51066068的博客 6422

LeetCode热题 HOT 100两数之和

文章目录LeetCode热题 HOT 100两数之和上题JAVA解答1. 第一次自己写的2. 参考评论区大神写的总结 LeetCode热题 HOT 100两数之和 开篇今天兴趣来潮打算去LeetCode刷刷算法题,为面试准备,忽然看到页面的LeetCode 热题 HOT 100,然后就点进去了,然后就有了这个文章! 上题 两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案

qq_43591363的博客 776

判断java中字符串是否存在于某个字符串数组中_【Java面试题】如何判断一个字符串中某个字符出现的次数?...

1. 前言最近面试了几家公司,体验了一下电话面试和今年刚火起来的视频面试,虽然之前就有一些公司会先通过电话面试的形式先评估下候选人的能力水平,但好像不多,至少我以前的面试形式100%都是现场面试。面试过程中,不可避免的被问到了很多面试题,本篇博客就总结下面试过程中被问到的关于String的2道面试题,分别是:如何判断一个字符串中某个字符出现的次数?如何反转一个字符串?其余的面试题,目前都已梳理出来...

weixin_39728213的博客 1093

【LeetCode:3011. 判断一个数组是否可以变为有序 + 分组循环】

【LeetCode:3011. 判断一个数组是否可以变为有序 + 分组循环】给你一个下标从 0 开始且全是 正 整数的数组 nums 。 一次 操作 中,如果两个 相邻 元素在二进制下数位为 1 的数目 相同 ,那么你可以将这两个元素交换。你可以执行这个操作 任意次 (也可以 0 次)。 如果你可以使数组变有序,请你返回 true ,否则返回 false 。

Coder_ljw的博客 982

100道多线程面试题,和面试官扯皮没问题了!

文章目录1.什么是进程?2.什么是线程?3.线程的实现方式?4.Thread 类中的start() 和 run() 方法有什么区别?5.线程NEW状态6.线程RUNNABLE状态7.线程的RUNNING状态8.线程的BLOCKED状态9.线程的TERMINATED状态10.线程状态转化图11.i--与System.out.println()的异常12.如何知道代码段被哪个线程调用?13.线程活动状...

qq_14958051的博客 1万+

JS数组判断为空的方法 ( 8种)

在JavaScript中,判断数组是否为空可以通过多种方式实现。以下是一些常见的方法及其示例代码

大剑师兰特的GIS世界 6982
上一篇: 剑指offer 栈的压入、弹出序列
下一篇: 解决Android Studio 不断indexing的问题
Chance00
博客等级 码龄12年 57粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值