Cody

# Problem 29. Nearest Numbers

Solution 1917949

Submitted on 1 Sep 2019 by Alvin LAU
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
A = [30 46 16 -46 35 44 18 26 25 -10]; correct = [8 9]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 16 14 76 5 14 12 4 5 40 16 0 30 92 11 2 28 20 21 56 14 30 0 62 19 28 2 10 9 26 76 92 62 0 81 90 64 72 71 36 5 11 19 81 0 9 17 9 10 45 14 2 28 90 9 0 26 18 19 54 12 28 2 64 17 26 0 8 7 28 4 20 10 72 9 18 8 0 1 36 5 21 9 71 10 19 7 1 0 35 40 56 26 36 45 54 28 36 35 0 s = 10 x = NaN 16 14 76 5 14 12 4 5 40 16 NaN 30 92 11 2 28 20 21 56 14 30 NaN 62 19 28 2 10 9 26 76 92 62 NaN 81 90 64 72 71 36 5 11 19 81 NaN 9 17 9 10 45 14 2 28 90 9 NaN 26 18 19 54 12 28 2 64 17 26 NaN 8 7 28 4 20 10 72 9 18 8 NaN 1 36 5 21 9 71 10 19 7 1 NaN 35 40 56 26 36 45 54 28 36 35 NaN x = 8 9 index1 = 8 index2 = 9

2   Pass
A = [1555 -3288 2061 -4681 -2230 -4538 -4028 3235 1949 -1829]; correct = [3 9]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 4843 506 6236 3785 6093 5583 1680 394 3384 4843 0 5349 1393 1058 1250 740 6523 5237 1459 506 5349 0 6742 4291 6599 6089 1174 112 3890 6236 1393 6742 0 2451 143 653 7916 6630 2852 3785 1058 4291 2451 0 2308 1798 5465 4179 401 6093 1250 6599 143 2308 0 510 7773 6487 2709 5583 740 6089 653 1798 510 0 7263 5977 2199 1680 6523 1174 7916 5465 7773 7263 0 1286 5064 394 5237 112 6630 4179 6487 5977 1286 0 3778 3384 1459 3890 2852 401 2709 2199 5064 3778 0 s = 10 x = NaN 4843 506 6236 3785 6093 5583 1680 394 3384 4843 NaN 5349 1393 1058 1250 740 6523 5237 1459 506 5349 NaN 6742 4291 6599 6089 1174 112 3890 6236 1393 6742 NaN 2451 143 653 7916 6630 2852 3785 1058 4291 2451 NaN 2308 1798 5465 4179 401 6093 1250 6599 143 2308 NaN 510 7773 6487 2709 5583 740 6089 653 1798 510 NaN 7263 5977 2199 1680 6523 1174 7916 5465 7773 7263 NaN 1286 5064 394 5237 112 6630 4179 6487 5977 1286 NaN 3778 3384 1459 3890 2852 401 2709 2199 5064 3778 NaN x = 3 9 index1 = 3 index2 = 9

3   Pass
A = [-1 1 10 -10]; correct = [1 2]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 2 11 9 2 0 9 11 11 9 0 20 9 11 20 0 s = 4 x = NaN 2 11 9 2 NaN 9 11 11 9 NaN 20 9 11 20 NaN x = 1 2 index1 = 1 index2 = 2

4   Pass
A = [0 1000 -2000 1001 0]; correct = [1 5]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 1000 2000 1001 0 1000 0 3000 1 1000 2000 3000 0 3001 2000 1001 1 3001 0 1001 0 1000 2000 1001 0 s = 5 x = NaN 1000 2000 1001 0 1000 NaN 3000 1 1000 2000 3000 NaN 3001 2000 1001 1 3001 NaN 1001 0 1000 2000 1001 NaN x = 1 5 index1 = 1 index2 = 5

5   Pass
A = [1:1000 0.5]; correct = [1 1001]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = Columns 1 through 17 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 16.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 15.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 14.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 13.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 12.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 11.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 5.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 4.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 3.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 2.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 1.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 0 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 1.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 2.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 3.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 4.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 5.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 6.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 7.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 8.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 9.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 10.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 11.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 12.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 13.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 14.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 15.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 16.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 17.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 18.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 19.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 20.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 21.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 22.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 23.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 24.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 25.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 26.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 27.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 28.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 29.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 30.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 31.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 32.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 33.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 34.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 35.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 36.0000 53.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 37.0000 54.0000 53.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 38.0000 55.0000 54.0000 53.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 39.0000 56.0000 55.0000 54.0000 53.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 40.0000 57.0000 56.0000 55.0000 54.0000 53.0000 52.0000 51.0000 50.0000 49.0000 48.0000 47.0000 46.0000 45.0000 44.0000 43.0000 42.0000 41.0000 58.0000 57.0000 56.0000 55.0000 54.0000 ...

6   Pass
% Area codes A = [847 217 508 312 212]; correct = [2 5]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 630 339 535 635 630 0 291 95 5 339 291 0 196 296 535 95 196 0 100 635 5 296 100 0 s = 5 x = NaN 630 339 535 635 630 NaN 291 95 5 339 291 NaN 196 296 535 95 196 NaN 100 635 5 296 100 NaN x = 2 5 index1 = 2 index2 = 5

7   Pass
% Zip codes A = [60048 61802 01702 60601 10001]; correct = [1 4]; [i1 i2] = nearestNumbers(A); assert(isequal([i1 i2],correct))

x = 0 1754 58346 553 50047 1754 0 60100 1201 51801 58346 60100 0 58899 8299 553 1201 58899 0 50600 50047 51801 8299 50600 0 s = 5 x = NaN 1754 58346 553 50047 1754 NaN 60100 1201 51801 58346 60100 NaN 58899 8299 553 1201 58899 NaN 50600 50047 51801 8299 50600 NaN x = 1 4 index1 = 1 index2 = 4