zoukankan      html  css  js  c++  java
  • LeetCode--Two_Sum

    Given an array of integers, return indices of the two numbers such that they add up to a specific target.

    You may assume that each input would have exactly one solution, and you may not use the same element twice.

    Example:
    Given nums = [2, 7, 11, 15], target = 9,
    Because nums[0] + nums[1] = 2 + 7 = 9,
    return [0, 1]
     1 #简单版本
     2 def Two_Sum(nums,target):
     3     i = 0
     4     j = 1
     5     while i < len (nums):
     6         while j < len(nums):
     7             if nums[i] + nums[j] == target:
     8                 print (i, j)
     9                 break
    10             j += 1
    11         i += 1
    12 
    13 nums = [2,7,11,15]
    14 target = int(input("输入target:"))
    
    
     1 #复杂版本--修改:已知n个不同整数wi的集合,求该集合的所有满足条件的子集,使得每个子集的正数之和等于另一个给定的正数M
     2 #回溯法解决子集和数问题
     3 #两种形式:1.固定长度n-元组
     4 #2.可变元组
     5 def SumOfSum(s,k,r,x,M,w):
     6     x[k] = 1
     7     if s + w[k] == M:
     8         print(x)
     9     elif s + w[k] + w[k+1] <= M:#搜索左子树
    10         SumOfSum(s+w[k],k+1,r-w[k],x,M,w)
    11     elif s + r - w[k] >= M  and  s + w[k+1] <= M:#搜索右子树
    12         x[k] = 0
    13         SumOfSum(s,k+1,r-w[k],x,M,w)
    14 
    15 def SumOfSum1(x,M,w):
    16     r = 0
    17     for i in range(len(w)):
    18         r = r + w[i]
    19     print(r)#73
    20     if r >= M and w[0] <= M:
    21         SumOfSum(0,0,r,x,M,w)
    22 
    23 n = 6
    24 x = [0] * 6
    25 w = [5, 10, 12, 13, 15, 18]
    26 M = 30
    27 SumOfSum1 (x, M, w)
    
    
    
     
  • 相关阅读:
    iscroll 子表左右滚动同时保持页面整体上下滚动
    mac xampp命令行调用mysql
    学习—ReentrantLock
    sychronized和lock的区别
    学习——常见垃圾回收器
    学习——java内存模型
    学习——哈夫曼编码
    数据库—Innodb中的MVVC
    学习-事务-事务特性
    学习——事务-事务隔离级别
  • 原文地址:https://www.cnblogs.com/nxf-rabbit75/p/9050349.html
Copyright © 2011-2022 走看看