mirror of
				https://github.com/janet-lang/janet
				synced 2025-10-31 07:33:01 +00:00 
			
		
		
		
	 2d7df6b78e
			
		
	
	2d7df6b78e
	
	
	
		
			
			- Allow passing a table to fibers, which make fiber level scope easier. - Add fiber/getenv, fiber/setenv, dyn, and setdyn - Remove meta, *env*, and *doc-width* - Some functions changed dignatures, and no longer take an env
		
			
				
	
	
		
			19 lines
		
	
	
		
			468 B
		
	
	
	
		
			Janet
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			468 B
		
	
	
	
		
			Janet
		
	
	
	
	
	
| (defn sum3
 | |
|   "Solve the 3SUM problem in O(n^2) time."
 | |
|   [s]
 | |
|   (def tab @{})
 | |
|   (def solutions @{})
 | |
|   (def len (length s))
 | |
|   (for k 0 len
 | |
|     (put tab (s k) k))
 | |
|   (for i 0 len
 | |
|     (for j 0 len
 | |
|       (def k (get tab (- 0 (s i) (s j))))
 | |
|       (when (and k (not= k i) (not= k j) (not= i j))
 | |
|         (put solutions {i true j true k true} true))))
 | |
|   (map keys (keys solutions)))
 | |
| 
 | |
| (def arr @[2 4 1 3 8 7 -3 -1 12 -5 -8])
 | |
| (printf "3sum of %P: " arr)
 | |
| (printf "%P\n" (sum3 arr))
 |