args 2019.12.08 1.algorithm:https://leetcode.com/problems/combination-sum-iv/这一题适合面试,虽然用到了动态规划,但是非常简单,比较容易想到。2.review:本人工作于一家备份软件公司的erp部门,下面小文列举了备份软件行业的两个主要对手commvault和veritas。虽然这个小文写的有些笼统,但还是能让人对这两家公司有个基本的认识。大家...
2019.11.23 arts 本周arts:1. algorithm:下面这题我直接把数字转换成字符串,然后排序,这样的代码比较清晰。优化的算法是找出lexicographical的规律,也挺容易理解的。但我更喜欢简单直白的解法。https://leetcode.com/problems/lexicographical-numbers/2. review:我司新收购的一家公司的博客,下文讲述了 hedvig软件定义...
补 2019.11.11-2019.11.17 arts: 1. algorithm:下面这题我用了暴力算法解题。优化算法是先对于magazine生成一个map,然后用ransom查这个map。对于leetcode的题目,我喜欢先用暴力算法写一个简单思路的解法,然后再优化,最后再对比讨论区的解法。https://leetcode.com/problems/ransom-note/discuss/?currentPage=1&orderBy=mo...
2019.11.4-2019.11.10 arts 1. algorithm:下面这题应用蓄水池算法。即使不能事先知道所有链表元素的个数,也能保证随机抽取k个样本。不得不感叹算法的精妙。https://leetcode.com/problems/linked-list-random-node/2. review:读了2篇蓄水池算法的文章,一篇中文,一篇英文。都不错。wiki的介绍太简单,只能大致看看。中文版的介绍很详尽。https://...
Cache与内存二三事 本文搜集了几个与内存和缓存相关的技巧,对于代码调优比较有帮助。即使你在工作中不需要写出极致性能的代码,也应该读一下这篇文章。因为看似对软件工程师透明的内存以及CPU Cache,其实并不“透明”,代码的细微差别可能明显的影响缓存以及内存的性能。1.会导致缺页中断的内存分配下文代码采用两种方式分配pBuffer,请比对两种不同方式的耗时。#include "stdafx.h"#inc...
arts 20191102 本周arts:1.algorithm:https://leetcode.com/problems/first-unique-character-in-a-string/submissions/本周做了一道简单题如上,我对比了讨论区里面c++和python的方案,再次感叹python的简洁,以及觉得python实在是为了处理字符串而生。2.review:一篇好文讲解什么是kubernet...
arts 20191027 本周arts:1.algorithm:https://leetcode.com/problems/find-the-difference/discuss/86826/Concise-C%2B%2B-solution-using-XOR本周做了一道算法题如上。一拿到题目我就知道这道题可以用类似two sum的方法解,就是把字符串里的每个字符插入一个set或者从set里面删除,从而找到t追加的那...
arts 20191027 本周arts:1.algorithm:https://leetcode.com/problems/find-the-difference/discuss/86826/Concise-C%2B%2B-solution-using-XOR本周做了一道算法题如上。一拿到题目我就知道这道题可以用类似two sum的方法解,就是把字符串里的每个字符插入一个set或者从set里面删除,从而找到t追加的那...
20191019 arts 本周arts:1.algorithm:https://leetcode.com/problems/perfect-rectangle/discuss/?currentPage=1&orderBy=most_votes&query=本周做了一道难度为hard的题目,我的暴力算法逻辑是很清晰的。但是有一个test case会因为超时而失败下面是讨论区里面优化的算法,作者的思路...
ARTS 20190929 以下是本周arts:1.algorithm:本周足了下面这道题,使用栈来解码一个字符串。我提交了C++和python两个版本的代码,python的代码非常简洁,又一次感叹python处理字符串的强大。下面给出讨论区里面的c++和python版本对比。https://leetcode.com/problems/decode-string/submissions/https://leetcod...
C和C++ 你必须知道的知识点 C和C++的知识浩如烟海,但是下面的知识点是我们一定要知道的,也是面试过程中大概率会问到的。这篇文章的内容我会不定期更新。1.结构体对齐这是面试中最常问的一个问题。下面是我多年前整理的一篇文章,讲解得十分详细。http://tassardge.blog.163.com/blog/static/172301708200810955123227/2.forward、move、左值和右值...
ARTS 20190921 technique lambda 架构 wiki wiki对lambda架构的解释很简明:https://en.wikipedia.org/wiki/Lambda_architecture1.数据库不覆盖已有的数据,新数据加时间戳保存;2.采用预计算+缓存的方式加速查询;3.对最新数据实时计算结果,结合缓存数据返回给用户一个实时结果。...
ARTS 20190921 technique: Stuff 函数的用法 https://www.w3schools.com/sql/func_sqlserver_stuff.aspSELECT STUFF('SQL Tutorial', 1, 3, 'HTML');本周学了一个小技巧:sql的stuff函数可以用来替换文本。
ARTS 20190921 algorithm 395. Longest Substring with At Least K Repeating Characters 今天做了一道算法题 https://leetcode.com/problems/longest-substring-with-at-least-k-repeating-characters/我的C++实现是暴力算法,思路比较简单,O(n2)算法复杂度。我看leetcode里面的讨论,下面这个思路不错,是O(n)算法复杂度。https://leetcode.com/problems/longe...
系统设计面试题之 怎么设计一个打分系统 上周我参加了一个面试,其中有一道系统设计题:某公司的内网有个质询系统。该公司的每个职员都可以对本公司的任何部门的任何事件提问题,并且所有的其他职员都能看到这些问题,还可以对问题打分,打分的范围是一颗星到五颗星。现在让我们来设计打分系统,不用考虑提问功能。以下是面试官给出的基本的测试用例:1.用户可以对任意一个问题评分,打分范围是一颗星到五颗星;2.公司的分析部门需要一个查询api,这个ap...
死锁二三事 最近解了一些死锁的bug。问题代码如下:lock.enter();//do something with so much codelock.leave();然后,“do something”代码块抛出异常,导致锁没有被释放。这里的问题是上面的代码在持有锁的时候做了太多的事情,我们使用锁的原则应该是快进快出。最初,我的解决方法如下,但我后来发现就算这么实现,如果“do someth...
如何强制vc检查自定义函数的格式字符串是否合法 如果自定义的log函数采用类似printf的格式字符串的话,visual studio 2017没有提供编译选项检查格式是否有效。我们可以用下面的技巧强制检查。#define LOG_WRAPPER(...) mylog(__VA_ARGS__); if(false) printf(__VA_ARGS__); else;这样就可以强制VC检查格式字符串是否合法。之所以要在最后加 else;...
ARTS 20190329 好久没更新arts了,这次内容有点多。1.Algorithm复习了前几个月做的算法题,我觉得一道题要做至少2遍,并且要看熟,才会对这道题背后的思想有感觉。https://blog.csdn.net/tassardge/article/details/82052007https://blog.csdn.net/tassardge/article/details/82318946https:...
linux porting 总结(未完待续) 最近做了很多跨平台(主要是linux和windows)C++代码的移植工作,本文做一下总结。跨平台移植技术是由大量的细节构成的,所以下文包含了大量的针尖大小的细节,内容很庞杂。主要遇到以下几个类问题:1.系统api的移植windows和linux的api背后的理念是类似的,接口参数略微不一样,但是差别不大,所以完全可以使用一套接口封装。1)文件查找windows和linux文件查找ap...