我太菜了

喜欢写Hello World的未来程序员.

621. Task Scheduler

你快乐吗

小楼一夜听春雨 深巷明朝卖杏花 C++,暴力排序模拟和桶排序。 暴力排序模拟 一开始想到的就是模拟了,直接模拟整个CPU执行任务的过程,用一个循环变量i标记CPU的每次执行,然后记住每种任务执行对应的i的值,每次取新任务的时候,都对任务数组重新排序,从最繁忙的任务开始,找到一个满足前n次都没执行过的任务,执行并标记为执行。。。 暴力模拟的思路很简单,代码一般会稍微麻烦点...

libunwind中unw_set_caching_policy对unw_step性能的影响

你快乐吗

云想衣裳花相容 春风拂槛露华浓 对子进程进行profile,使用到了libunwind库中的几个接口,但发现耗费时间颇多。然后一个点一个点的排查,居然是unw_get_proc_name和unw_step两个最频繁调用的接口耗费时间最多。 初探libunwind性能 简单地写了几行代码,对系统中某个后台进程trace。 选择的进程就是下面这个,fcitx,随便选的,我也...

494. Target Sum

你快乐吗

四时可爱唯春日 一事能狂便少年 C++,暴力和,或者hash,前者不需要额外空间,后者需要额外空间。 暴力和解法 有一种很简单的方法,就是将nums数组变成和数组,nums[i]表示的是nums[0]到nums[i]的累加和。通过两层循环,记录nums[j] - nums[i - 1],就可以得到所有的和,然后找出等于K的和就行了。 class Solution { p...

elf文件和读取elf信息

profile

秋花最是黄葵好 天然嫩态迎秋早 关于ELF文件 首次接触到elf,我也是非常懵逼,可执行文件就叫可执行文件嘛!为什么搞个可执行与可链接格式文件?这里我也不说太多废话,因为解释和说明文档,无论你百度和google,都能找到一大堆解释,很全。我说的更多是关于自己使用的时候要用到的知识理论,以及怎么读取。 ELF文件中常用到的有,ELF头,节和表。 ELF头更多的是记录文件的...

关于编程语言中的虚拟机

profile

伤心桥下春波绿 曾是惊鸿照影来 前段时间luajit的源码,然后在查阅资料的时候,经常会看到“虚拟机”,“字节码”等字眼。在luajit的源码中,也会经常看到vm等文件和函数。 实际上,虚拟机对于一门编程语言来说,就承担了执行“字节码/机器码”的工作。为什么要叫做虚拟机,重点就在于执行,模拟机器执行汇编指令的过程。 编译型语言和解释型语言 我太难了,明明写好了...

494. Target Sum

你快乐吗

自古圣贤皆寂寞 只教饮者留名 C++,暴力解法和背包。 建议大家暴力解法和背包都能学一下。。。为什么呢? 如果面试的时候,你直接跟面试官开始推出本题中正负数和的公式,那肯定是不讨好面试官的,他会觉得你都没有怎么思考,是背的题。个人建议刷题及面试的时候,应该首先考虑暴力和容易想到的方法。亲身经历,一开始就给出那种很巧妙且复杂度最优的解法,容易被面试官觉得你刷题多,然后故意为...

438. Find All Anagrams in a String

你快乐吗

浮生只合尊前老 雪满长安道 C++,哈希,字符串比较。 如何判断连个字符串组成的字符以及数目是相同的呢? 最容易想到的就是,记录下每个字符出现的次数,然后比较每个字符出现的次数是否相等。 所以就是利用hash记录字符出现次数,然后比较两个hash表是否相等。 在本题中,很容易就会想到,遍历字符串s,每前进一位,对新组成的子串,利用hash记录字符出现次数,然后将这个h...

416. Partition Equal Subset Sum

你快乐吗

可惜一溪风月 莫教踏碎琼瑶 C++,动态规划,01背包。 这道题需要稍微转变点思路,就是01背包了哈哈哈。 首先可以肯定的是,序列总和必须为偶数,因为得由两个和相等的集合相加而成。 然后就变成了,找到若干元素组成的子序列,该子序列的和等于总和的半数。 这不就是01背包吗???虽然我忘了01背包怎么写了2333。 定义一个数组:vector<bool> d...

406. Queue Reconstruction by Height

你快乐吗

梨花院落溶溶月 柳絮池塘淡淡风 C++,排序模拟题,贪心思想。 要解这道题,首先明白一个事,就是对于该序列,身高最低的人在剩余空位中的位置是可以直接确定的。 比如序列:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]],元素[4,4]在新序列的是可以直接确定的,因为它就是身高最矮的,就是新序列中的4号位;同理[5,2]也是能确定的,是在2...

394. Decode String

你快乐吗

金风玉露一相逢 便胜却人间无数 C++,字符串处理、栈、dfs。 这种套娃题,肯定想到的就是递归了,为什么用递归? 因为套娃啊,在处理这个字符串的过程中,就会发现[...]里的内容又是一个字符串,可以用相同的方法去处理,所以就是找到所有的[...],把...扔给递归的下一层去处理。同时要把[...]前的数字给提取出来,把下一层返回的结果,重复加N遍,N是前面提取到的数字。...