python学习之——元组中两数相加之和等于某数

#题目:数组中找出两个元素之和 等于给定的整数

# 思路:
# 1、将数组元素排序;
# 2、array[i]与a[j](j的取值:i+1到len_array-1) 相加;
# 3、如两两相加<整数继续,如=整数则输出元素值;
# 4、如>则直接退出,i+1 开始下一轮相加比较

def addData(array, sumdata):

    temp_array = array
    temp_sumdata = sumdata
    print "sumdata: %d" %temp_sumdata

# 如array中没有负数,则可以先将 >sumdata 的数删掉
# 为了避免长度变化问题,可将<sumdata的数赋值给另一array
#    temp_array = []
#    len_temp_array2 = len(temp_array2)
#    for i in range(0,len_temp_array2):
#        if temp_array2[i] < temp_sumdata:
#            temp_array.append(temp_array2[i])

    sorted(temp_array)

    len_temp_array = len(temp_array)

# 计数符合条件的组数
    num = 0

    for i in range(0, len_temp_array-1):
        for j in range(i+1, len_temp_array):
            if temp_array[i] + temp_array[j] < temp_sumdata:
                continue
            elif temp_array[i] + temp_array[j] == temp_sumdata:
                num += 1
                print "Group %d :" % num
                print "下标:%d, 元素值: %d" %(i, temp_array[i])
                print "下标:%d, 元素值: %d" %(j, temp_array[j])
            else:
                break

if __name__=="__main__":
    test_array = [-1,1,2,3,4,5,6,7,8]
    test_sumdata = 6
    addData(test_array, test_sumdata)
时间: 2024-10-21 04:10:52

python学习之——元组中两数相加之和等于某数的相关文章

python学习--为元组中每个元素命名

官方文档:namedtuple():命名元组函数赋予元组中每个位置的含义,并允许更具可读性的自编写代码.它们可以在任何使用常规元组的地方使用,并且可以通过名称而不是位置索引来添加字段. 实例: from collections import namedtupleStudent=namedtuple('Student',['name','age','sex','email']) 第一个参数为设置创建子类的名字,创建一个Student类的元组子类. 方法返回的就是一个元组的子类.s=Student(

python学习之web中的html

Web概述web起源web特点1.易导航和图形化界面2.与平台无关3.分布式结构4.动态性5.交互性 html 网页结构 HTML(Hyper Text Mark-up Language )即是超文本标记语言, 通过使用标记标签来描述页面文档结构和表现形式的一种语言,再由浏览器进行解析,然后把结果展示在网页上.?超文本指的是超链接?标记指的是标签1).HTML文件用编辑器打开显示的是文本,可以用文 本的方式编辑.2). HTML文件用浏览器打开,浏览器会按照标签描述内容将文件渲染成网页,显示的网

java中两double相加精度丢失问题及解决方法

在讨论两位double数0.1和0.2相加时,毫无疑问他们相加的结果是0.2.但是问题总是如此吗? 下面我们让下面两个doubles数相加,然后看看输出结果: @Test public void testBig(){ System.out.println(0.11+2001299.32); } 控制台输出2001299.4300000002 我们吃惊的发现,结果并不是我们预想的那样,这是为什么呢?又如何解决呢? 现贴出BigDecimal的一个构造函数的文档供大家参考 BigDecimal pu

程序员面试100题之十:快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值(转)

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解. 假如有如下的两个数组,如图所示: 5,6,1,4,7,9,8 给定Sum= 10 1,5,6,7,8,9 给定Sum= 10 分析与解法 这个题目不是很难,也很容易理解.但是要得出高效率的解法,还是需要一番思考的. 解法一 一个直接的解法就是穷举:从数组中任意取出两个数字,计算两者之和是否为给定的数字. 显然其时间复杂度为N(N-1)/2即O(N^2).这个算法很简

判断有序整型数组中是否存在两数,相加之和等于给定的任意整数

前几天参加C++的一个面试,面试官问到这样一个问题,当时给出的第一答案是1. 遍历数组中的元素,两数相加与给定的整数进行比较,此种方法在数组个数和整数个数较小时可用. 两数之和等于任意整数,肯定有一个数小于等于任意整数的1/2,另一个数大于等于任意整数的1/2,那么只需要判断整数的一半,由于数组是排序的,可通过二分查找的方式 直接遍历数组中小于等于任意整数一半的元素,通过二分查找的方式,在数组中的有序元素不连续时,相比方法2更节省许多运算

Python学习笔记:元组(tuple)有关内容

元组是跟列表非常类似的一种容器类型,但是列表是可变的,形式是LIST[  ],元组是不可变的,形式为TUPLE(  ). 1.创建元组. 元组的创建方法与列表类似,只有一点不同,元组内至右一个元素的时候需要在元素后面加上一个逗号(,).因为元组的形式是用 小括号来包含元素的,但是小括号也是数学公式中的,所以会产生歧义,此时系统默认不是元组类型,所以需要加上逗号来区分. >>> T = (1,2,3) >>> T (1, 2, 3) >>> T = (1

Python学习笔记#元组和列表的区别

python的基本类型中有元组和列表这么俩个,但是这哥俩却比较难于区分,今天就来用简单的实例说明两者的不同. 列表:1.使用中括号([ ])包裹,元素值和个数可变 实例: aaa = ['sitename','www','pythontab','com'] 元组:1.使用中括号(())包裹,不可以被更改(尽管他们的内容可以) bbb = ['sitename','www','pythontab','com'] 元组可以看成是 只读 的列表 两者都可以通过[:]得到子集,和字符串使用方法相同 下例

在给定数组中,找出最先满足两个数的和等于给定数,输出这两个元素的下表

leetcode上的一道题目,虽然不难,但是考察了数据结构中很多的知识 Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be

Python学习笔记——元组

1.创建一个元组并给它赋值 >>> aTuple = (123,'abc',4.56,['inner','tuple'],7-9j) >>> aTuple (123, 'abc', 4.56, ['inner', 'tuple'], (7-9j)) >>> tuple('ABC') ('A', 'B', 'C')  2.访问元组中的值 >>> aTuple[0] 123 >>> aTuple[1:4] ('abc',