• 注册
    • 今日签到
    • 连续签到
  • 管理员
    管理员
    今天01:25
  • Lee
    Lee
    今天02:03
  • 管理员
  • ph4nTOMs
  • 冷兔
  • Lee
    Lee
  • 夏天的尾巴
  • 天邊一只雁
  • 疯琰疯语
  • -:/
    -:/
  • 网上考拉
  • CJLin
    • 查看作者
    • Amazon OA1

      Debug

      1. ArraySum: 
        Bug: sum = arr[i] 
        Fixed: sum += arr[i]

      2. Count Occurence: 统计某数在数组中出现的次数 
        Bug: while loop 里面 i++

      3. Check Grade: 计算GPA 
        Bug: "||" 
        Fixed: "&&"

      4. Remove Element: 删除数组特定位置的元素, 超出返回则返回原数组 
        Bug: arr[i++] 第五行 
        Fixed: arr[i + 1]


        1. public static int[] removeElement(int arr[], int index) {

        2.    int i, j, len = arr.length;

        3.    if (index < len) {

        4.        for (i = index; i < len - 1; i++) {

        5.            arr[i] = arr[i+1];

        6.        }

        7.        int rarr[] = new int[len - 1];

        8.        for (i = 0; i < len - 1; i++) {

        9.            rarr[i] = arr[i];

        10.        }

        11.    } else

        12.        return arr;

        13. }

      5. Digit Count: 返回num%len(num) == 0 or != 0 
        Bug: 最后返回时, num已经是0了. 所以之前要先保存起来.


        1. public int find(int num) {

        2.    int count = 0;

        3.    int temp = num;  //add a temporary variable

        4.    while (num ! = 0) {

        5.        num = num / 10;

        6.        count++;

        7.    }

        8.    //return num % count; <--Bug

        9.    return temp % count; //Fixed

        10. }

      6. Sort Array 
        Bug: 大于小于符号写反 
        Fixed: arr[i] < arr[j]降序, arr[i] > arr[j]升序.


        1. public static int[] sortArray(int[] arr) {

        2.    int len = arr.length;

        3.    int small, pos, i, j, temp;     //small, pos can be deleted

        4.    for (i = 0; i <= len - 1; i++) {

        5.        for (j = i; j < len; j++) {

        6.            temp = 0;

        7.            if (arr[i] < arr[j]) {  // Bug '<' should be '>'

        8.                temp = arr[i];

        9.                arr[i] = arr[j];

        10.                arr[j] = temp;

        11.            }

        12.        }

        13.    }

        14.    return arr;

        15. }

      7. Sort Array 2 
        Bug: 大于小于符号写反 
        Fixed: arr[i] < arr[j]降序, arr[i] > arr[j]升序.


        1. //这是一个正确的降序排列算法

        2. public static int[] sortArray2(int arr[]) {

        3.    int i, max, location, j, temp, len = arr.length;

        4.    for (i = 0; i < len; i++) {

        5.        max = arr[i];

        6.        location = i;

        7.        for (j = i; j < len; j++) {

        8.            if (max < arr[j]) {

        9.                max = arr[j];

        10.                location = j;

        11.            }

        12.        }

        13.        temp = arr[i];

        14.        arr[i] = arr[location];

        15.        arr[location] = temp;

        16.    }      

        17.    return arr;

        18. }

      8. Replace values 数组长度是偶数就把元素都改成1, 奇数就都改成0 
        Bug: for loop里面 i <= len, j < = len 
        Fixed: i < len, j < len


        1. public static int[] replaceValues(int arr[]) {

        2.    int i, j, len = arr.length;

        3.    if (len % 2 == 0) {

        4.        for (i = 0; i < len; i++) { //fixed

        5.            arr[i] = 0;

        6.        }

        7.    } else {

        8.        for (j = 0; j < len; j++) { //fixed

        9.            arr[j] = 1;

        10.        }

        11.    }

        12.    return arr;

        13. }

      9. Reverse array 
        但是class的名字居然是sort array 
        Bug: arr[len-1]改成 arr[len-i-1] for循环里 len +=1去掉


        1. public static int[] reverseArray(int[] arr) {

        2.    int i, temp, originalLen = arr.length;

        3.    int len = originalLen;

        4.    for (i = 0; i < originalLen / 2; i++) {

        5.        temp = arr[len - i - 1];

        6.        arr[len - i - 1] = arr[i]; //fixed

        7.        arr[i] = temp;

        8.        // len +=1;  

        9.    }

        10.    return arr;

        11. }

      10. Even Odd pattern 
        Bug: for 循环缺大括号


        1. public static void print4(int num) {

        2.    int i, print = 0;

        3.    if (num % 2 == 0) {

        4.        print = 0;

        5.        for (i = 0; i < num; i++) {

        6.            System.out.print(print + " ");

        7.            print += 2;

        8.        }

        9.    } else {

        10.        print = 1;

        11.        for (i = 0; i < num; i++) {

        12.            System.out.print(print + " ");

        13.            print += 2;

        14.        }

        15.    }

        16. }

      11. Manchester Code: 假设第一个element前面的数字是0 
        Bug: 把判断语句的 == 改成 != (考虑i == 0的情况)

      12. Selection sort 
        Bug: if里面的判断 arr[min] > arr[x], 改成arr[min] > arr[y]


        1. // selection sort in ascending order

        2. for (x = 0; x < n; x++) {

        3.    int index_of_min = x;

        4.    for (y = x; y < n; y++) {

        5.      //if (arr[index_of_min] > arr[x]) { // Bug

        6.        if (arr[index_of_min] > arr[y])

        7.            y = index_of_min;

        8.        }

        9.        int temp = arr[x];

        10.        arr[x] = arr[index_of_min];

        11.        arr[index_of_min] = temp;

        12.    }

        13. }

        14. // bubble sort in descending order    

        15. for (int x = 0; x < n; x++) {

        16.    for (int y = x; y < n; y++) {

        17.        if (arr[x] < arr[y]) {

        18.            int temp = arr[x];

        19.            arr[x] = arr[y];

        20.            arr[y] = temp;

        21.        }

        22.    }

        23. }

      13. Insertion sort 
        Bug: 大于小于x


        1. for (int i = 1; i < n; i++) {

        2.    if (arr[i - 1] > arr[i]) { int temp = arr[i]; //Bug

        3.        int j = i;

        4.        while (j > 0 && arr[j - 1] > temp) { //Bug arr[j - 1] > temp

        5.            arr[j] = arr[j - 1];

        6.            j--;

        7.        }

        8.        arr[j] = temp;

        9.    }

        10. }

      14. Print Pattern 

        ab 
        abc 
        Bug: char ch = 'a' 定义在了for loop前面, 移进来就好, 同时删除了没用的变量


        1. //This code is correct

        2. public static void print2(int row) {

        3.       for (int i = 1; i <= row; i++) {

        4.            char ch = 'a';

        5.            char print = ch;

        6.            for (int j = 1; j <= i; j++) {

        7.                  System.out.print((print++));

        8.            }

        9.            System.out.println();

        10.       }

        11. }

        12. //可以继续优化:

        13. public static void print2(int row) {

        14.       for (int i = 1; i <= row; i++) {

        15.            char ch = 'a';

        16.            for (int j = 1; j <= i; j++) {

        17.                  System.out.print((ch++));

        18.            }

        19.            System.out.println();

        20.       }

        21. }

      15. Print Pattern 
        Row number = 3 
        11 
        1111 
        111111

        Row number = 2 
        11 
        1111 
        Bug: 第一层for循环少了大括号,


        1. public static void print3(int row) {

        2.    int x = 1;

        3.    for (int i = 1; i <= row; i++) { //添加括号

        4.        for (int j = i; j > 0; j--) {

        5.            System.out.print(x + "" + x);

        6.        }

        7.        System.out.println();

        8.    } //添加括号

        9. }

      16. remove duplicates from unsorted array 
        Bug: 循环下标要从i + 1开始

      17. Array奇数偶数 
        Bug: for loop i += 2 改成i++

      Reasoning

      1. QPS : TSV -> IHK : (LKN) (+3)

      2. 46 : 64 -> 82 : (100)(差为18) 也可能是28, 交换个位十位的位置,也可能是+2,-2 ??

      3. EAGLE : FZHKF -> THANKS : (UGBMLR) +1, -1 找规律的(奇数+1偶数-1)

      4. FASTER : HCUVGT -> SLOWER --> (UNQYGT) (+2)

      5. 985 : 874 -> 763 : (652) (-1)

      6. 865 : 532 -> 976 : (643) (-3)

      7. ADBC : EHFG -> ILJK : (MPNO)(4个一组)

      8. JOHN : LSNV -> MARK : (OEXS)(+2 +4 +6 +8)

      9. COMP UTER : PMOC RETU -> TELEV ISION : (VELET NOISI)(镜像倒过来)

      10. A17R : D12P -> G7N : ? (R=A+17)

      11. COMPUTER : GKQLYPIN -> SENATE : WARWXA(奇数+4偶数-4)

      12. KPQR : LRTV -> DGHY : (EIKC) (前后相减每一位的增加分别为1,2,3,4)

      13. ACFJ : CEHL -> PRUY : (RTWA) (前后项差2)

      14. VALIANT : UBKJZOS -> TRANSCEND : SSZORDDOC (-1 +1交替)

      15. 27 : 24 -> 64 : (60)(24=3^3-3,64=4^3,4^3-4=60)

      16. MQD : KRK -> SWM : (TQX)or(NCF)(13, 17, 4;11, 18, 11; 交叉 -5(13-18) 6(17-11) -7(4-11))

      17. AD5 : ED9 求和(A + D = 5, E + D = 9)

      18. BGL : DIN : MRW : NTB(第一项+2就是第二项) 原答案 HLR(差5差6)????好像不太对啊??

      19. PRS TVX FIK LME 只有最后一个不是递增

      20. JLP LNT TVZ DFJ(其他的都是+2 +4)

      21. ~ABIJ~ DEHI MNQR STWX(ABIJ前后一对间距不同)

      22. ADP QTS HKR STE (选1?都是完全平方数?,或者QTS,位与的结果不是0?)

      23. RHCAI OEST HNDA ADEH(RHCAI?只有这个不是身体部位?)

      24. ADF ~MPR~ ILN EHJ(2?只有它不是以元音开头?)

      25. STV XYA KKT BDE(其他都是两偶一奇,只有KKT是两奇一偶)

      26. 956 794 884 678(678,前几组加起来和都是20)

      27. 1,4,16 17,20,24 8,11,18 19,20,5 (其他的和为奇数, 最后一个为偶数)(感觉是最后一个,间距不是3的倍数)

      28. AE5 DF6 HN14 ~KP2~(感觉选KP2,因为P!=2)

      29. HIK DGJ LPT SUW(1,因为不是等间距)

      30. LKJI XYWV WVUT KJIH(其他的都是倒序)

      31. 2,3,7,8,13,14,(20) (20?相差5,6,7?)

      32. 0 1 1 2 4 8 (16)(16前面的所有数加起来)

      33. 3,6,18,108,(1944) (18 * 6 = 108,所以应该是18*108)

      34. 1,1,4,2,13,3,40,4,(121)(1+3的1次方=4,4+3的2次方=13,13+3的3次方=40,40+3的4次方=121)

      35. 3 7 13 21 (31) (相差每次增长2)

      36. 5 11 19 29 (41)(相差每次增长2)

      37. 0 2 6 12 20 (30)(相差每次增长2)

      38. 5 9 16 29 (54) 5*2-1, 9*2-2, 16*2-3, 29*2-4

      39. 4 12 6 18 12 36 30 (90)(奇数位乘以3就是偶数位)

      40. 1 5 (8) (1 + 2^2 = 5, 5 + 2^1 = 7 ,7 + 2^0 = 8) 应该是1, 5, 7, (8)

      41. D, H, L, (p) (P,等间距)

      42. 10 14 23 39 64 (100)(间距为完全平方数4, 9, 16, 25, 36)

      43. 10 74 202 394 650(间距递增64)

      44. 2 8 5 6 8 (4) 11(应该是4吧,两两这么看的, 2、5、8、11, 加3得来的。 另外一组应该是减2,也就是8、6、4)

      45. 16 30 46 62 (82), (98) (13+3, 29+1, 43+3, 61+1 然后前面的都是质数,每个质数之间隔了三个质数, 61之后第四个质数是79, 79+3=82, ,或者16加上后面的数为第二个的结果)

      46. 1:4:27:256:? 3125(n^n)

      47. 2, 5, 26,(677)(规律是当前数字是前一个数字平方加1)

      48. ASSERTIVENESS-> SENSSAEVISTRE : MULTINATIONAL -> ?(记录ASSERTIVENESS每个字母的位置,再记录下SENSSAEVISTRE每个字母的位置,找出mapping关系(比如A在ASSERTIVENESS中第一个位置,在SENSSAEVISTRE第六个位置,那么1->6)。最后记录MULTINATIONAL每个字母的顺序,按照之前找出的mapping对找出来(如M肯定会在所求字符串的第六个位置)。这种题字符串的长度和所包含的字母个数肯定是一样的。)重复字母的情况是有一定规律的,你看ASSERTIVENESS-> SENSSAEVISTRE , 123456789,10,11,12,13 -> 12,11,10,3,2,1,9,8,7,13,6,5,4 (用重复的字母把字符串隔开,就能看到排列顺序了)【2】ass 【5】ert 【3】ive 【1】nes 【4】s

      49. 原题字母,这里直接用数字表示:(DELHI)4,5,12,8,9 => 3,4,1,7,8问 13, 21, 13, 2, 1, 9 => ? (网上解法有:4, 5, 12, 8, 9 => (4 - 1), (5 - 1), (1 - 0)(2 - 1), (8 - 1), (9 - 1),so13, 21, 13, 2, 1, 9 => 02, 10, 02, 1, 0,8 或者4 5 12 8 9 -> 3 4 1 7 8 (每位都-1)13 21 13 2 1 9 -> 02 10 02 1 26 8 就是2 10 2 1 26 8 (B J B A Z H)

      50. 0, 1, 1, 2, 3, 7, (22) 
        0 * 1 + 1 = 1, 
        1 * 1 + 1 = 2, 
        1 * 2 + 1 = 3, 
        2 * 3 + 1 = 7, 
        3 * 7 + 1 = 22

      纽约州·法拉盛
    • 0
    • 0
    • 0
    • 556
    • 请登录之后再进行评论

      登录
    • 做任务
    • 返回顶部