- 博客(63)
- 收藏
- 关注
原创 python 定义函数与简单test
import math# from abstest import my_abs def quadratic(a, b, c): # check input abc is legal # if not legal throw error m = b * b - 4 * a * c if m < 0: raise TypeError('bad operand type') return else: ret1 =
2021-12-14 17:03:00 558
原创 python中的key-value
#key-value map and set#mapd = {'Michael': 95, 'Bob': 75, 'Tracy': 85}# output 95print(d['Bob'])# output keyError, with thr wrong input# print(d['Boerr'])# output true if the element do exists in dprint('Bob' in d)#sets1 = set([1, 2, 3])s2 = se
2021-12-14 16:00:48 1647
原创 python中的循环
python中的循环for+while+break+continue#for#() both left and right are opensum = 0for x in range(101): sum += xprint(sum)#whilesum2 = 0n = 99while n > 0: sum += n n -= 2print(sum)#breakn = 1while n <= 10: if (n >= 5):
2021-12-14 15:34:52 599
原创 python的判断
常用的就是if elif else 别忘记冒号。height = 15.75weight = 45BMI = weight / (height * height)#if elif else && don't forget :if BMI >= 32: print('yanzhong')elif BMI >= 28: print('feipang')elif BMI >= 25: print('guozhong')elif BMI
2021-12-14 14:54:37 602
原创 python中的list和tuple
list和tuple是python内置的数据类型, python中推荐tuple注意tuple的初始化和修改操作List可以类比cpp中的list,增删改减。tuple和list类似但是一旦初始化后就不可更改,所以tuple中没有append,insert等操作,是为了让代码更安全。list有序集合,可随时增删其中元素,也可使用索引访问其中元素。classmates = ['Michael', 'Bob', 'Tracy']classmates['Michael', 'Bob', 'Tracy'
2021-12-13 17:45:05 385
原创 猫头鹰的咖啡馆-数据结构与算法-如何理解那些“死记硬背”的排序
文章目录前言一、冒泡排序二、选择排序三、打牌时的插入排序和希尔排序四、快速排序五、归并排序总结前言无论是校招还是社招,排序是绕不开的基础算法,甚至已经工作三年的我此时并不知道为何要面排序。冒泡,快速,归并,你未必理解,但像背古文一样背总是可以的。但后面我刷了一些二叉树和链表的题目,看到归并与快速在相关题目中的应用,大概有了一丝丝共鸣,排序终究是有用的。是锻炼一种算法思维。但具体什么应用此刻的我大概是说不出什么的。我想我会带着疑问上路,我也可以告诉我自己,就像很多年前我的数学老师告诉我的那样,你要理.
2021-11-16 12:12:31 1374
原创 毕业三年的我
猫头鹰的风言风语。9.16在某大厂的最后一天,开始了裸辞之旅。手续第二天五点便起床,踏上了回家了征程,在家过了一个中秋节,短暂的休息五天后。回沪。无所事事的几天后,在十一假期结束的时候,开始了泡浦东图书馆之旅。在图书馆一天刷leetcode,一边润色简历,一边思考人生投简历。投简历当天就有很多公司发来面试,有大厂,也有startup…电话接的手软,可是并不是钱。记得第一家正式面试的是商汤,AI四小龙。可能还是不对口,一面问的基础的题目也都算是做出来了,但应该是gg了,因为一直没有联系我。然后就是小公司
2021-11-15 13:24:32 5102 3
原创 动态规划专题+回溯专题
https://leetcode-cn.com/problems/combination-sum/submissions/
2021-11-07 11:43:55 202
原创 猫头鹰冲击微软
翻转字符串给定一个无序链表和一个数字,把比这个数字大的放在后面,比这个数字小的放在前面,要求稳定性。使用partition对BST进行序列化和反序列化岛屿数量判断链表是否有环快排二叉树排序atoi实现c++类,虚函数实现new和malloc区别class大小,包含virtual大小虚表指针指向哪里?进程和线程关系强引用和弱引用bfs问题,岛屿问题链表翻转LC200, LC69, LC113,LC1,是否为合法三角形矩形从左上走到右下归并排序的推导,还有实现手写LRU
2021-11-03 22:31:07 134
原创 猫头鹰面试常见题 C++软件研发
文章目录前言一、C++基础1. 什么是多态2. 为什么构造函数中不能有虚函数,也不能抛出异常?4. 为什么析构函数中不能有虚函数,也不能抛出异常?5. 为什么基类析构函数中要设成虚函数?6. 什么时候基类析构函数不要设成虚函数?7. strcpy,memcpy,memset的区别8. 右值引用的方法和优点8. C++内存管理,new和malloc9. c++智能指针二、数据结构和算法1.快速排序思想和归并思想2. 哈希函数和哈希冲突三、常用STL1. vector2. list3. deque4. pri.
2021-11-01 17:34:35 492
原创 猫头鹰OS面试指南
1,进程是资源分配的最小单位,线程是系统调度的最小单位2,进程切换和线程切换,上下文切换从切换成本出发进程切换相当于线程切换(PC指针)+内存切换。有可能会引出内核级线程和用户级线程,要会区别。3,死锁产生条件:多个进程各自占有资源,又各自需要申请资源,造成环路等待的情况。处理:一次性申请所有资源->对资源要求高资源有序申请->对算法要求高引出银行家算法例子。4,进程如何切换先保存当前进程的资源->放入寄存器中通过调度算法获取下一个进程->使用PC指针切换
2021-10-28 15:33:03 235
原创 猫头鹰的链表指南
刷题觉得链表常用的就是那些1,mid利用快慢指针获取mid。需要注意的是有时需要切断前后链表之间的关系。如何完成呢?设置prev指针指向slow,slow代表的是mid及其之后的链表,因此prev指向mid->left。将prev最终指向nullptr,表示以slow为分界线的链表的前后分家。ListNode* getMid(ListNode* head) { if(!head) { return head; } ListN
2021-10-28 10:39:32 88
原创 牛客top高频刷题
1,快速排序class Solution {public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 将给定数组排序 * @param arr int整型vector 待排序的数组 * @return int整型vector */ void quickSort(vector<int>& arr, int left, int right) { // 定界
2021-10-26 14:19:44 279
原创 cmu硕士101-二叉树 手撕版
struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}TreeNode(int x, TreeNode *left, TreeNode right) : val(x), left(left), right(right)
2021-08-27 18:03:15 178
原创 刷过的leetcode
### 5. 最长回文子串 ###/*1.判断长度 s.length();2.string转char []3.递归dp[i][j]表示字符串i-j是否是回文字符串char[i]=char[j] 而且(j-i>=2) 或者 (dp[i+1][j-i]是回文字符串)4.输出*/class Solution {public: string longestPalindrome(string s) { // 先判断字符串个数 int len = s.l
2021-08-27 11:18:45 68
原创 叶言叶语啊
1,一个线程 申请内存 然后把flag 置为 ture ,另外一个线程 判断flag 为true 就去使用这个内存 请问这样操作可以吗–线程访问2, 多个IO复用 --IO读写操作3,数据库索引问题,索引在数据库中如何存储–数据库存储问题,B+树索引4,epoll 网络模型5,linux 什么情况下会触发 用户态与内核态的切换6,如何自己实现system 函数7,如何解决哈希冲突8,map和unordered_map底层数据查找和存储方式,引申到set和unordered_set,以及各自的不
2021-08-24 20:02:29 133
原创 CMU硕士101-我与链表的故事
CMU硕士101-我与链表的故事链表的基本操作翻转:掌握两种方法合并链表:给两个有序连续,输出一个增序链表,可以联系到XXX给链接交换链表:判断链表能否交于一点判断链表是否回文
2021-08-17 09:40:31 82
原创 CMU硕士101-巧妙的位运算
#include <iostream>#include <vector>#include <set>#include <cmath>#include <algorithm>#include <numeric>#include <string>#include <cstring>#include <queue>#include <map>#include <unor
2021-08-16 17:47:50 113
原创 CMU硕士101-贪心算法
/*贪心算法:局部操作之间彼此独立,所以局部最优的时候,全局一定是最优.*/455 分配饼干/*思路:每个孩子都是独立的,所以应该每次选择饭量最小的孩子在饼干中寻找最少的第一个大于等于它饭量的饼干.以此类推*/int findContentChildren(vector<int>& g, vector<int>& s) { int lenG = g.size(), lenS = s.size(); int gIndex = 0, sInd
2021-08-13 18:55:27 108
原创 CMU硕士101-妙用数据结构
1,数组:448. 找到所有数组中消失的数字/*一句话总结:寻找消失的数字思路: step1:遍历nums,如果map中不存在的, 插入 step2:遍历[1, n]。如果i在map不能找到的直接push到vector中 step3:return注意: */class Solution {public:vector<int> findDisappearedNumbers(vector<int>& nums) { in
2021-08-05 19:28:53 143
原创 CMU硕士101-动态规划
动态规划**:查找有很多重叠子问题的情况时有最优解。**将问题分解成很多子问题,每次保存每个子问题的计算结果,当所有的子问题被解决的时候,整个问题便被解决。动态规划只能用于有最优子结构的问题。动态规划和BFS、DFS一样本质都是将原来的问题拆分成许多个子问题,本质区别是,动态规划保存子问题的解,避免重复的计算。解决动态规划问题的关键是找到状态转移方程,这样可以通过计算和存储子问题的解来求解最终的问题。有时候,动态规划可以看成有状态记录的优先搜索。状态记录的意思是,一个子问题在优先搜索时已经计算过一次,
2021-07-19 19:00:24 300
原创 2021-07-13
L8:CPU管理的直观想法操作系统的核心就是要管理计算机硬件。CPU是操作系统中最核心的硬件,就是在管理CPU的时候才引入了多进程的概念。所以说多进程是操作系统的核心图像。管理CPU,首先要使用CPUCPU的工作原理管理CPU的最直观方法设置好PC初值就完事。这样做有没有问题?**IO特别的慢,**CPU完全在电路,磁盘是机械设备,机械设备要比电子设备慢得多。100万:1,。问题就是CPU利用率非常低。怎么解决?当执行不下去的时候,切过去。多个程序在内存中,多道程序。交替执行。多道
2021-07-13 13:00:14 81
原创 操作系统--哈工大李治军 32讲
L1 什么是操作系统绝知此事要躬行计算机硬件:CPU、内存、显存操作系统:windows、linux应用软件:word matlab在计算机硬件和应用软件之上包装一层软件,方便我们使用硬件,高效的使用硬件,如打开多个终端(窗口),管理哪些硬件CPU管理、内存管理、终端管理、磁盘管理、文件管理、网络管理、电源管理、多核管理。**目标:**一台单CPU的单机操作系统是如何管理硬件建立起来。从而延伸到网络分布式,多CPU等内容。学习操作系统,到底应该学习些什么?从应用功能软件出发“探到操作系统
2021-07-10 15:07:43 352
原创 设计模式--单例模式
// 饿汉class Singleton {public: static Singleton* getInstance();private: Singleton() { cout << "new" << endl; } Singleton(const Singleton&) = delete; Singleton& operator=(const Singleton&)=delete; .
2021-07-07 21:18:53 90
原创 c++ 基础-智能指针
unique_ptr所有权是唯一的指针,任何时候不和其他指针共享一个对象。未初始化时,相当于一个空指针。要使用make_unique(C++ 14)来初始化它。禁止拷贝赋值,要想转移所有权的话,必须显示声明std::move。尽量不要对unique_str进行赋值操作。shared_ptr被安全共享的智能指针,在任何场合代替原始指针。过度使用降低程序运行效率,指向的对象的析构函数不应该很复杂,否则造成进程的阻塞,还有一个循环引用问题。weak_ptr打破循环应用,只做观察指针,只是看一下对象存活
2021-07-06 21:23:44 157
原创 CMU硕士101-玩转双指针-leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
一次后的旋转数组依然有自己的特色。使用二分查找,如果mid的值小于等于右,可以保障右区间是增序的,反之,如果mid<= 左,说明左面是增序的。如果目标值正好位于排好序的区间内,对这个区间继续进行二分查找。反之对另一个地方进行二分查找。如果是左端数字和终点相同,并不能确定是左面完全相同,还是右面完全相同。此时,我们将左端右移一位,然后继续进行二分查找。class Solution {public: bool search(vector<int>& nums, int.
2021-07-06 20:50:15 70
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人