查看: 1062| 回复: 6
跳转到指定楼层
上一主题 下一主题
收起左侧

0基础非cs小白刷题贴,争取日日更新

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
0基础小白开始自学刷题啦,lz是对数学和逻辑很不敏感的妹纸, 若有方向不对的地方,请大佬们指教。若有其他小白,一起刷题交换心得~~

评分

参与人数 3大米 +13 收起 理由
Mason.PD + 5 怎么断了
fred9582 + 3 给你点个赞!
eewqq12 + 5 给你点个赞!

查看全部评分


上一篇:开一个刷题贴监督自己
下一篇:开个刷题贴来激励自己
🔗
 楼主| 爱哭的冰淇淋 2018-5-11 09:43:26 | 只看该作者
全局:
5/10Selection Sort

评分

参与人数 1大米 +5 收起 理由
Mason.PD + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 爱哭的冰淇淋 2018-5-11 09:49:37 | 只看该作者
全局:
5/10 慢悠悠做了 Selection Sort and Merge Sort 看到大神们一天刷8道 好羡慕
不明白Merge Sort 有个地方用while为什么会越界 代码在最下面 求大神指教~~
Selection Sort
public class Solution {
  public int[] solve(int[] array) {
    // Write your solution here
    if (array == null || array.length == 0){
             return array;
    }
    for(int i = 0; i <array.length - 1; i++){
             for (int j = i + 1; j < array.length; j++){
        if (array[i] > array[j]){
                                                swap(array, i, j);
        }
      }
    }
    return array;
  }
  private void swap(int[] array, int left, int right){
           int temp = array[left];
    array[left] = array[right];
    array[right] = temp;
  }
}
time complexity 1 + 2 +3+..+ n - 1 =n^2  o(n^2)
space comlexity o(1)

Merge Sort
public class Solution {
  public int[] mergeSort(int[] array) {
    // Write your solution here
    if (array == null || array.length == 0){ //array.length没有括号
             return array;
    }
    int[] helper = new int[array.length];//这里不用加括号
    mergeSort(array, helper, 0, array.length - 1);
    return array;
  }
  private void mergeSort(int[] array, int[] helper, int left, int right){
           if(left >= right){
             return;
    }
    int mid = left + (right - left)/2; //防止overflow
    mergeSort(array, helper, left, mid);
    mergeSort(array, helper, mid + 1, right);
    merge(array, helper, left, mid, right); //左边,分界线,右边
  }
  private void merge(int[] array, int[] helper, int left, int mid, int right){
           int lIndex = left;
    int rIndex = mid + 1; //mid + 1 是右半边的最多端
    int Index = left;
   // while(Index <= right){
    //         helper[Index++] = array[Index++];//先赋值再加减
    //}
   不明白为什么这里会报错 越界了array 改成了for循环就好了 求大神指导一下
      for (int i = left;  i <= right; i++){
      helper[i] = array[i];
    }
    while(lIndex <= mid && rIndex <= right){
              if (helper[lIndex] <= helper[rIndex]){
                array[left++] = helper[lIndex++];
       }else{
                array[left++] = helper[rIndex++];
       }
    }
    while (lIndex <= mid){
                        array[left++] = helper[lIndex++]; //如果左半边有剩余 也要复制上去, 右半边不用管
    }
  }
}

评分

参与人数 1大米 +5 收起 理由
Mason.PD + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 爱哭的冰淇淋 2018-5-14 03:59:24 | 只看该作者
全局:
5/11-5/13 更新
QuickSort ,Rainbow Sort, Number Of Valid Triangles 自己index逻辑搞不清楚 浪费了好多时间

评分

参与人数 1大米 +5 收起 理由
Mason.PD + 5 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
 楼主| 爱哭的冰淇淋 2018-5-14 05:24:14 | 只看该作者
全局:
5/13 Remove Adjacent Repeated Character 好多string 的api不熟  char[] array = string.toCharArray();return new String(left, 0, right);
还有一些math不熟   return left + (int)(Math.random()*(right - left + 1));   //find a random number
回复

使用道具 举报

🔗
 楼主| 爱哭的冰淇淋 2018-5-14 05:26:46 | 只看该作者
全局:
更正上一条 return new String(string, left, right);

评分

参与人数 1大米 +5 收起 理由
Mason.PD + 5 加油

查看全部评分

回复

使用道具 举报

🔗
demi1209 2018-6-20 12:14:12 | 只看该作者
全局:
妹子这还叫零基础吗?
我EE转CS来着,9月就要开学了,不知道怎么下手准备点基础,请教点建议!
继续加油啊,亲
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表