Problem Statement
Elly has a sequence of small positive integers. You are given this sequence in the
For this task we will assume that the operations AND and XOR have equal priority (precedence), thus the expression is evaluated left to right. For example, 42 ^ 26 & 38 will be evaluated as (42 ^ 27) & 38 = 49 & 38 = 32. Note, however, that the maximal answer for the numbers (42, 27, 38) is achieved by using the expression 42 & 27 ^ 38 = (42 & 27) ^ 38 = 10 ^ 38 = 44.
Definition
- Class:
- EllysAndXor
- Method:
- getMax
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int getMax(int[] numbers)
- (be sure your method is public)
Notes
- The result of the bitwise operation AND (denoted as '&') applied on two integers is a new integer, having 1-bits on each position where both integers had a 1 in their binary representation, and 0 on all others. For example, 42(10) & 27(10) = 101010(2) & 011011(2) = 001010(2) = 10(10).
- The result of the bitwise operation XOR (denoted as '^') applied on two integers is a new integer, having 1-bits on each position where exactly one of the integers had a 1 in their binary representation, and 0 on all others. For example, 42(10) ^ 27(10) = 101010(2) ^ 011011(2) = 110001(2) = 49(10).
Constraints
- numbers will contain between 1 and 10 elements, inclusive.
- Each element of numbers will be between 1 and 1000, inclusive.
Examples
{42, 27, 38}
Returns: 44
The example from the problem statement.
{666, 133, 438, 123, 893, 674, 462, 209}
Returns: 976
{42}
Returns: 42
The result of an expression with a single number equals the number.
{123, 456, 789, 987, 654, 321}
Returns: 975
{42, 13, 17, 666, 811, 314, 1, 5, 2, 1000}
Returns: 1007
Please note that the answer can go over 1000.
{1000}
Returns: 1000
{666, 666, 666, 666, 666, 666, 666, 666, 666, 666}
Returns: 666
{666, 666, 666, 666, 666, 666, 666, 666, 666}
Returns: 666
{1, 2, 4, 8, 16, 32, 64, 128, 256, 512}
Returns: 1023
{1, 1, 32, 32, 64, 64, 256, 256, 512, 512}
Returns: 512
{42, 42, 13, 13, 17, 17, 666, 666, 314, 314}
Returns: 666
{12, 34, 56, 78, 909, 87, 65, 43, 21}
Returns: 1021
{3, 6, 12, 24, 48, 96, 192, 384, 768}
Returns: 896
{5, 10, 20, 40, 80, 160, 320, 640}
Returns: 992
{7, 14, 28, 56, 112, 224, 448, 896}
Returns: 960
{230, 421, 415, 271, 962, 677, 373, 951}
Returns: 979
{379, 15, 211, 955}
Returns: 1003
{573, 982, 296, 730, 591, 750}
Returns: 851
{224, 186, 398, 84, 542, 770, 288, 78, 373, 417}
Returns: 954
{968, 564, 565, 740, 377, 633, 287, 111, 823}
Returns: 919
{520, 708, 174}
Returns: 686
{295, 694, 678, 227, 588, 371, 740}
Returns: 1012
{798, 82, 385, 979, 389, 31, 667, 541}
Returns: 989
{471, 562, 974, 577, 286, 836, 120, 290, 185}
Returns: 955
{549, 410, 814, 508, 559, 806, 215, 606, 637}
Returns: 1023
{583, 491, 908}
Returns: 975
{556, 34}
Returns: 526
{750, 866}
Returns: 610
{156, 646, 536, 958, 862, 565, 27, 744}
Returns: 986
{276, 80, 322, 92, 790, 452}
Returns: 988
{602, 935, 392}
Returns: 906
{991, 158, 721, 868, 112, 29}
Returns: 921
{861, 218, 251, 797, 218, 866, 305}
Returns: 744
{46, 350}
Returns: 368
{937, 21, 491, 109, 577, 849, 187, 497, 258, 201}
Returns: 977
{120, 336, 383, 127}
Returns: 343
{129, 890, 375, 215, 401, 999, 333, 320, 567, 744}
Returns: 949
{414, 331, 417, 234, 948, 194, 329, 40}
Returns: 1021
{903, 972, 736, 573}
Returns: 857
{646, 810, 110, 575, 151, 649, 403, 349, 635}
Returns: 950
{207, 417, 621, 72, 511, 451}
Returns: 887
{943, 955, 905, 427}
Returns: 566
{474, 314, 932, 157, 395, 327}
Returns: 789
{403, 569, 660, 125, 802, 478, 948}
Returns: 1012
{975, 427, 229, 475, 863, 341, 612}
Returns: 881
{208, 707, 19, 719, 150}
Returns: 662
{304, 96, 693, 22, 857, 389}
Returns: 900
{52, 990, 540, 300, 596, 588, 460, 7, 264}
Returns: 1023
{767, 454}
Returns: 825
{503, 772, 409, 105, 73, 399, 14, 1, 622, 693}
Returns: 765
{539, 175, 494, 346, 695, 601, 894, 765}
Returns: 1005
{843, 162, 124, 128, 947, 539, 38, 184}
Returns: 663
{450, 865, 156, 265, 78, 25, 394, 630, 620}
Returns: 753
{227, 50, 415, 513, 517, 593, 522}
Returns: 607
{739, 433, 16, 344, 556, 574, 831, 445, 728}
Returns: 1013
{25, 483, 620, 722, 621, 596, 42, 818}
Returns: 926
{488, 251, 102, 391}
Returns: 487
{816, 499, 9, 891, 316, 536, 829, 446, 88, 916}
Returns: 990
{567, 75, 600, 106, 401, 921, 900, 151, 886, 34}
Returns: 990
{319, 422, 844, 503, 100, 179, 304}
Returns: 965
{755, 955, 12, 234, 143, 100, 649, 321}
Returns: 1004
{680, 203, 640}
Returns: 520
{937, 343, 828, 89, 81, 762, 443, 955, 460, 56}
Returns: 1021
{855, 382, 680, 680, 386, 961, 38, 366, 785, 650}
Returns: 979
{328, 756, 966, 197, 213, 58}
Returns: 942
{871, 865, 337, 683, 327, 410}
Returns: 823
{95, 478, 106, 174, 338, 777, 378, 422, 379}
Returns: 1020
{24, 910}
Returns: 918
{634, 318, 220, 27, 320, 958, 905, 927, 937}
Returns: 959
{314, 344}
Returns: 280
{616, 170, 44, 11, 26, 997, 353, 188, 833, 92}
Returns: 986
{358, 77, 680, 118, 448, 234, 258, 539, 919, 425}
Returns: 1016
{449, 738, 60, 463, 347, 500, 511, 334}
Returns: 718
{300, 812, 492, 869, 619, 524, 650}
Returns: 969
{595, 752, 317, 412, 473, 974, 339, 392, 873, 245}
Returns: 1012
{77, 248, 115, 966}
Returns: 1021
{930, 881, 800, 561, 398, 422, 318, 237}
Returns: 987
{669, 372, 491, 590, 641, 909, 418, 757, 913, 860}
Returns: 988
{859, 39}
Returns: 892
{585, 716, 383, 717, 165, 640, 115, 721, 664, 187}
Returns: 862
{906, 73, 922, 155, 468, 88}
Returns: 661
{210, 990, 880}
Returns: 930
{362, 859, 380, 215}
Returns: 922
{575, 375, 402, 656}
Returns: 912
{321, 298, 489, 137, 143, 740, 736}
Returns: 740
{389, 354, 595, 50, 767, 434, 41, 914, 981}
Returns: 983
{392, 807, 209, 342, 605, 276, 473, 904, 498}
Returns: 1010
{794, 166, 478, 631, 167, 135, 508}
Returns: 958
{346, 32, 3, 995, 902}
Returns: 902
{281, 682, 339}
Returns: 736
{309, 340, 768, 576, 590, 425}
Returns: 1001
{898, 796, 471, 30, 831, 764, 389, 601, 18, 157}
Returns: 983
{236, 262, 85, 919}
Returns: 983
{724, 309, 904}
Returns: 924
{582, 139, 247, 699, 992, 750, 232}
Returns: 988
{160, 182, 696, 518, 635, 593, 744, 679}
Returns: 743
{900, 456, 607, 786, 613, 98, 821, 750, 11, 671}
Returns: 879
{742, 541, 585, 434, 248, 969, 367, 58, 880}
Returns: 890
{710, 170, 481, 178, 741, 933, 1, 146, 765, 187}
Returns: 951
{755, 837, 700, 293, 567}
Returns: 1007
{42, 13, 17, 666, 811, 314, 1, 5, 2, 1000 }
Returns: 1007
{1, 3 }
Returns: 2
{42, 84 }
Returns: 126
{1, 2, 4, 8 }
Returns: 15
{123, 456, 789, 987, 654, 321 }
Returns: 975
{6, 1 }
Returns: 7
{1, 2 }
Returns: 3
{1, 2, 4, 8, 16, 32 }
Returns: 63
{1, 1, 1 }
Returns: 1
{42, 27, 38 }
Returns: 44
{4, 4, 1, 5, 99, 321 }
Returns: 321
{666, 133, 438, 123, 893, 674, 462, 209 }
Returns: 976
{1, 2, 7 }
Returns: 7
{3, 1, 2 }
Returns: 3
{7, 5 }
Returns: 5
{1, 1, 3 }
Returns: 3
{6, 4, 4 }
Returns: 6
{5, 6 }
Returns: 4
{4, 7, 6 }
Returns: 5
{7, 4 }
Returns: 4
{3, 2, 2 }
Returns: 3
{9, 7, 9, 9 }
Returns: 14