今天下午,看了一会github,想刷个题呢,就翻出来了刷点题提高自己的实际中的解决问题的能力,在面试的过程中,我们发现,其实很多时候,面试官 给我们的题,其实也是有一定的随机性的,所以我们要多刷更多的题。去发现问题。

题目:

    给定一个整数数组 nums 和一个目标值 taget,请你在该数组中找出和为目标值的那 两个 整数,
并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

解析:

实际这里就是给你的一个列表的数字,给你一个预期,让你返回

这个列表里面两个数字相加等于这个预期的数字的下标。

代码思路:

1.直接用到两个for循环,去遍历这个list,

2.一个for循环从第一个元素,一个for循环从减去这个元素的list里面去遍历

3.然后去判断这个两个的元素相加的和是否等于预期的taget,如果等于,直接返回元素的下标。

4. 这里可能返回多个,我们默认选择第一组。

实现代码:

class Solution():
def twoSun(self,nums,target):
for i in range(len(nums)):
for j in range(len(nums)):
if nums[i]+nums[j] ==target and i !=j:
return [i,j]

那么我们先来个简单的测试,去测试一下:

if __name__=="__main__":
solution=Solution()
print(solution.twoSun([1,2,3,4,5,6],5))

执行打印结果:

那么我来看下给定的list里面是否是对的。

我们知道python的list是从0开始计数的,即0的下标的元素就是list的里面第一个元素,然后一次类推。

我们可以看到下标是0 和3的元素分别是1和4,1+4=5

符合预期,认为代码通过。

下面我们做下单元测试:

class TestCase(unittest.TestCase):
def setup(self):
pass
def tearDown(self) -> None:
pass
def testcaseone(self):
self.solution = Solution()
result=self.solution.twoSun([1, 2, 3, 4, 5, 6], 5)
self.assertEqual(result,[0,3])
def testcasetow(self):
self.solution = Solution()
result = self.solution.twoSun(["1", 2, 3, 4, "5", 6], "5")
self.assertEqual(result, [0, 3])
def testcasethree(self):
self.solution = Solution()
result = self.solution.twoSun(["a", 2, 3, 4, "b", 6], "ab")
self.assertEqual(result, False)
if __name__=="__main__":

unittest.main()

测试代码运行后,我们发现了其中的错误。其实我们没有对入参进行控制,随后我们对代码进行升级,

class Solution():
def twoSun(self,nums:list,target:int):
for i in range(len(nums)):
for j in range(len(nums)-i):
try:
if nums[i]+nums[j] ==target and i !=j:
return [i,j]
except:
return False

运行结果

所以在测试过程中,我们一定要对我们的代码进行一定的单元测试。单元测试进行的越早,我们的问题发现的越早。写好的代码自己一定要进行测试。

刷题之给定一个整数数组 nums 和一个目标值 taget,请你在该数组中找出和为目标值的那 两个 整数的更多相关文章

  1. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    class Solution {     public int[] twoSum(int[] nums, int target) {         for (int i = 0; i < nu ...

  2. 给定一个整数数组 nums 和一个目标值 target,求nums和为target的两个数的下表

    这个是来自力扣上的一道c++算法题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案 ...

  3. Leetcode33--->Search in Rotated Sorted Array(在旋转数组中找出给定的target值的位置)

    题目: 给定一个旋转数组,但是你不知道旋转位置,在旋转数组中找出给定target值出现的位置:你可以假设在数组中没有重复值出现 举例: (i.e., 0 1 2 4 5 6 7 might becom ...

  4. 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比

    算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}  要找出那些数相加等 ...

  5. ytu 1061: 从三个数中找出最大的数(水题,模板函数练习 + 宏定义练习)

    1061: 从三个数中找出最大的数 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 154  Solved: 124[Submit][Status][We ...

  6. C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置

    #include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...

  7. 从数组中找出所有组合为s的数

    java版本 package numCombine; /** * 从数组中找出所有组合为s的数 * @author root * */ public class NumComberAll { publ ...

  8. C语言:对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中。-在数组中找出最小值,并与第一个元素交换位置。

    //对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中. #include <stdio.h& ...

  9. 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)

    例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序     ...

随机推荐

  1. jquery datatable如何动态分页

    展开全部 一.分页 分页的基本思想是根据datatable的页码及每页显示的行数,将数据从数据库分段提出,然后再填充到表格中,以达到分页的效果. 这里需要用到datatable插件的几个属性: &qu ...

  2. 工厂交接班易出问题?MES系统实现精准对接

    工厂交接班制度非常的严格和复杂,而MES系统能让繁琐的交接班流程简单快捷无措.MES系统在发生事件时记录传递事件,还可以主动对事件进行分类和报告.人员可以查看和深入到以前或当前班次的个别事件. 随着工 ...

  3. 令人兴奋的TOP Server OPC Server v6.5 五大功能(下)

    接上文. 2.MQTT客户端驱动程序自动标记生成(ATG) 使用过TOP Server OPC Server的大家可能还记得,在TOP Server OPC Server V6.4版本中,我们为MQT ...

  4. Windows下MongoDB的下载安装、环境配置

    下载MongoDB 1.进入MongoDB官网,Products -> 选择SOFTWARE下的MongoDB Server 2.选择下载最新版 3.选择对应的版本下载 msi安装包形式安装Mo ...

  5. RTP包的结构

    live555中数据的发送最后是要使用RTP协议发送的,下面介绍一下RTP包格式. RTP packet RTP是基于UDP协议的,RTP服务器会通过UDP协议,通常每次会发送一个RTP packet ...

  6. 【RAC】rac环境下的数据库备份与还原

    [RAC]rac环境下的数据库备份与还原 一.1  BLOG文档结构图 一.2  前言部分 一.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~ ...

  7. 交换机 VLAN 的划分

    交换机怎么划分VLAN?本次的实验很简单,就是通过VLAN的划分,使不同VLAN之间无法通信,但是相同VLAN不受影响. 实验拓扑 在一台交换机下连接三台VPC,划分VLAN,地址规划如下: 名称 接 ...

  8. emqx配置ssl

    1.生产自签证书 mkdir /etc/emqttd/certs/ && cd /etc/emqttd/certs/ openssl genrsa -out ca-key.pem 20 ...

  9. Mysql5.7 建表报 [Err] 1055 问题

    最近,在win10系统上,使用docker下载了 mysql5.7镜像,然后建表时,发生奇怪的问题,表正常创建,但底部会出现一行错误信息,如下: [Err] 1055 - Expression #1 ...

  10. php图片防盗链

    利用.htaccess 重写规则防止图片被盗链 2. 找到httpd.conf 打开重写规则 3.