創新工場筆試算法題附答案

    時間:2024-10-17 21:33:04 面試筆試 我要投稿
    • 相關推薦

    創新工場2014筆試算法題匯總附答案

       1. 編程實現堆排序

    創新工場2014筆試算法題匯總附答案

      #include

      usingnamespace std;

      void SwapValue(int &m, int &n)

      {

      int temp = m;

      m = n;

      n = temp;

      }

      void max_heap(vector &vec, int i, int heap_size)

      {

      int l = 2*i;

      int r = 2*i+1;

      int largest = i;

      if(l<=heap_size && vec[l-1]>vec[largest-1])

      largest = l;

      if(r<=heap_size && vec[r-1]>vec[largest-1])

      largest = r;

      if(largest!=i)

      {

      SwapValue(vec[largest-1],vec[i-1]);

      max_heap(vec, largest, heap_size);

      }

      }

      void heapSort(vector &vec)

      {

      int heap_size = vec.size();

      for(int i=heap_size/2; i>=1; i–)

      max_heap(vec, i, heap_size);

      for(int i=heap_size; i>=1; i–)

      {

      SwapValue(vec[0],vec[i-1]);

      max_heap(vec, 1, i);

      }

      }

      void print(vector vec)

      {

      for(int i=0; i

      cout<

      cout<

      }

      int main()

      {

      vector vec;

      vec.push_back(23);

      vec.push_back(5);

      vec.push_back(1);

      vec.push_back(10);

      vec.push_back(13);

      vec.push_back(32);

      vec.push_back(21);

      vec.push_back(14);

      vec.push_back(19);

      vec.push_back(20);

      cout<<“排序前: “<

      print(vec);

      heapSort(vec);

      cout<<“排序后: “<

      print(vec);

      return 0;

      }

      2.求一個正整數N的開方,要求不能用庫函數sqrt(),結果的精度在0.001

      解析:牛頓迭代

      #include

      using namespace std;

      int main()

      {

      int N;

      cout<<“輸入N的值:“;

      cin>>N

      double x1 = 1;//初值

      double x2 = x1/2.0+N/2.0/x1;

      while( fabs(x2-x1)>0.001)

      {

      x1 = x2;

      x2 = x1/2.0+N/2.0/x1;

      }

      cout<

      return 0;

      }

      3.給定一個矩陣intmaxtrixA[m][n],每行和每列都是增序的,實現一個算法去找矩陣中的某個元素element.

      解法一:

      #include

      using namespace std;

      const int M = 4;

      const int N = 4;

      int main

      {

      int matrix[M][N] = {};

      double element;

      int flag = 1;

      for(int j=0; j

      {

      if(matrix[i][j] == element)

      cout<<“位置“<

      while( flag

      –flag;

      while( flagelement )

      ++flag;

      }

      }

      解法二:

      bool Find(int *matrixA, int m, int n, int element)

      {

      bool found = false;

      if(matrixA != NULL & m & n)

      {

      int i,j;

      i=0;j=n-1;

      while(i

      {

      if(maxtrixA[i*n+j] == element)

      {

      found = true;

      break;

      }

      else if(matrix[i*n+j]>element

      –j;

      else

      ++i

      }

      }

      }

    【創新工場筆試算法題附答案】相關文章:

    創新工場的幾道算法面試題11-16

    校招創新工場,趨勢科技,金和軟件筆試11-21

    迅雷2道算法類筆試真題11-21

    安徽農信社筆試真題及答案解析11-21

    筆試面試成績怎么算法11-12

    java筆試題及答案08-20

    筆試OQ答案共享11-21

    平安筆試群毆題11-19

    聯想筆試真題09-26

    91久久大香伊蕉在人线_国产综合色产在线观看_欧美亚洲人成网站在线观看_亚洲第一无码精品立川理惠

      一本色道久久综合色 | 亚洲日本无精品视频在线免费观看 | 一本一久本久a久久精品综合 | 中文字幕不卡一区精品视频 | 亚洲国产资源动态gif | 午夜精品一区二区三区在线观看 |