刷题之给定一个整数数组 nums 和一个目标值 taget,请你在该数组中找出和为目标值的那 两个 整数
今天下午,看了一会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,请你在该数组中找出和为目标值的那 两个 整数的更多相关文章
- 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
class Solution { public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nu ...
- 给定一个整数数组 nums 和一个目标值 target,求nums和为target的两个数的下表
这个是来自力扣上的一道c++算法题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案 ...
- Leetcode33--->Search in Rotated Sorted Array(在旋转数组中找出给定的target值的位置)
题目: 给定一个旋转数组,但是你不知道旋转位置,在旋转数组中找出给定target值出现的位置:你可以假设在数组中没有重复值出现 举例: (i.e., 0 1 2 4 5 6 7 might becom ...
- 用C#写一个函数,在一个数组中找出随意几个值相加等于一个值 与迭代器对比
算法!用C#写一个函数,在一个数组中找出随意几个值相加等于一个值比如,数组{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} 要找出那些数相加等 ...
- ytu 1061: 从三个数中找出最大的数(水题,模板函数练习 + 宏定义练习)
1061: 从三个数中找出最大的数 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 154 Solved: 124[Submit][Status][We ...
- C语言 选择排序算法原理和实现 从数组中 找出最小的元素然后交换位置
#include <stdio.h> int main(void) { /* 选择排序算法 原理:从数组中 找出最小的元素然后交换位置: */ int a[10] = {9,5,10,7, ...
- 从数组中找出所有组合为s的数
java版本 package numCombine; /** * 从数组中找出所有组合为s的数 * @author root * */ public class NumComberAll { publ ...
- C语言:对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中。-在数组中找出最小值,并与第一个元素交换位置。
//对传入sp的字符进行统计,三组两个相连字母“ea”"ou""iu"出现的次数,并将统计结果存入ct所指的数组中. #include <stdio.h& ...
- 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序 ...
随机推荐
- Matlab原型模式
原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象.Matlab面向对象编程有两种类,一种是Value Class,一种是Ha ...
- MySQL数据库之互联网常用分库分表方案
一.数据库瓶颈 不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值.在业务Service来看就是,可用数据库连接少甚至无连接可用.接下来就 ...
- vue 数据更新问题
在uni-app构建选项卡时,方法中改变的数组数据 无法更新v-if中的布尔值 在函数中打印出来是修改成功了,但在页面中并没有进行响应 布局如下: <swiper :current=" ...
- 常用的User-Agent
window.navigator.userAgent 1) ChromeWin7:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTM ...
- 【转载】TX - row lock contention 的一些场景
TX - row lock contention 的一些场景 原创 2016-07-11 易欣 云和恩墨 易欣(Eson) 云和恩墨技术专家 本文整理来自7月7日周四晚云和恩墨大讲堂嘉宾易欣分享的主题 ...
- css样式设定样例说明
<style> .classA .classB{*}; //表示设置class为classA标签下的classB标签的样式(A). .classA , .classB{*}; //表示同时 ...
- minikube国内在线部署体验
问题描述: 快速学习k8s的各个组件的作用及yml的编写,minikube很适合. how to install Minikube, a tool that runs a single-node Ku ...
- jquery 子元素筛选选择器
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content ...
- 模型融合---CatBoost 调参总结
一.参数速查 1.通用参数 2.性能参数 3.处理单元设置 二.分类 三.回归
- mac随笔
1.查看端口,lsof -i tcp:post lsof -i tcp:8086 2.kill进程 找到进程的PID,使用kill命令:kill PID(进程的PID,如2044),杀死对应的进程 k ...