diff --git a/.gitignore b/.gitignore index fc54ea7..7ca5cbe 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ .pyc *.*~ _*_.* - +.ipynb diff --git a/3sum_closest.py b/3sum_closest.py index 777f7ac..301a5df 100644 --- a/3sum_closest.py +++ b/3sum_closest.py @@ -10,18 +10,18 @@ ''' from __future__ import division import random +import math ### DP? Given a list L # S(i, k, target) = True if we can find k elements among L[:i] to sum up to target # S(i, k, target) = S(i-1, k-1, target-L[i-1]) or S(i-1, k, target) def sum_closest(L, num_k, target): - import math n = len(L) S = {} prev = {} max_t = sum([x for x in L if x > 0]) min_t = sum([x for x in L if x <= 0]) - print 'target range: [%d, %d]' %(min_t, max_t) + print('target range: [%d, %d]' %(min_t, max_t)) # Initialization: # S(0,any,any) = False @@ -57,11 +57,22 @@ def sum_closest(L, num_k, target): next_i,next_k,next_t = prev[(i,k,t)] if next_k == k-1: output.append(L[next_i]) i,k,t = next_i,next_k,next_t - print 'output:', output, 'sum(output):', sum(output) + print('output:', output, 'sum(output):', sum(output)) return output if __name__ == '__main__': - sum_closest([-1, 2, 1, -3, 6], 2, 2) - + sum_closest([-1, 2, 1, -3, 6], 3, 2) +####---------- my test codes ------------#### +# this is for 3 number in order! +def my_sum(L,num_k,target): + for i in range(len(L)): + sum_L = 0 + output = [] + for j in range(num_k): + sum_L += L[i+j] + output.append(L[i+j]) + if sum_L == target: + break + return output \ No newline at end of file diff --git a/MyNoteBook.ipynb b/MyNoteBook.ipynb new file mode 100644 index 0000000..d20924e --- /dev/null +++ b/MyNoteBook.ipynb @@ -0,0 +1,32 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# test codes\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.8.13 ('pytorch_m1')", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.8.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "7847b48317249e3ca26d69faac65a9677ad7ca85de2bc94a91f5d8868713ce5f" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}