0%

题目:判定是否互为字符重排

解题方法:

  1. 用哈希表unordered_map<char, int>,记录s1中字符出现数,并于s2做对比
  2. int count[256]的数组来完成上述工作(桶计数)
  3. 没想到的方法:将s1s2内部按照字符升序排序,最后判定两者是否相等即可

2的时间复杂度为\(O(N)\),因为\(N <= 100\),因此可以理解为\(O(1)\)

阅读全文 »

分为机考和面试两个部分,机考240/600,面试三轮,前两轮技术,最后一轮简历,积累了一点自信,但也看到了差距,之后要好好刷题,争取更加从容,加油!

阅读全文 »

动态规划实在是同重要了,而且饱含了计算机之美,虽然多次被虐,但还是决定要认真牢记!

  • 主要思想:用空间换时间,从而避免递归中不必要的重复计算。
  • 难点:定义\(dp[i]\)的含义,以及动态转移方程
阅读全文 »

排序算法中有非常经典的算法思想蕴含其中,本篇主要实现了几种经典的排序算法,希望常常回看,彻底牢记!

  • 定义:将数组中的数按照升序或降序进行排列
  • 时间复杂度:
    • \(O(NlogN)\):快速排序、归并排序、堆排序等
    • \(O(N^2)\):冒泡排序,插入排序等
阅读全文 »