自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Java并发原理

基本原理 为了提高处理速度,处理器不直接和内存进行通信,而是先将系统内存的数据读到内部缓存后再进行操作,但操作完不知道何时会写到内存。 Java代码在编译后会变成Java字节码,字节码被类加载器夹在到JVM里,JVM执行字节码,最终转化为汇编指令在cpu上执行 编译器会进行优化重排 并发问题 缓存导致的可见性问题 (一个线程的修改对另一个线程不可见) 优化重排导致的有序性问题 线程切换带来的原子性问题 (本质还是内存可见性) 解决办法 ...

2020-11-15 22:34:33 121

原创 常见排序算法总结(实现原理,稳定度,使用场景,时间复杂度)

常见排序算法总结:

2018-06-10 09:48:52 2222

原创 (leetcode)103. Binary Tree Zigzag Level Order Traversal

Given a binary tree, return the zigzag level order traversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between)第一行从左到右,第二行从右到左,第三行从左到右...这样的顺序遍...

2018-06-07 12:04:27 141

原创 程序猿校招笔试题-选择题部分(c++)总结

陆陆续续每天做一份选择题也一段时间了,特地总结一下,常见题型内容:我是C++开发:对于题中出现的java题,或者有些公司比较特别的题,都不做特别深究。只做c++开发相关的题。对于其他部分,要不知道笔试的时候咋整啊。1.C++代码题就比较简单了,写运算结果,或者填中间过程。2.操作系统。多线程,...

2018-06-05 12:15:01 1122

原创 码代码心得(c++)

2018.6.3:今天做了Leetcode每周一竞赛。然后一个Leetcode medium的题调试到怀疑人生。题还挺简单的,写完题花了20分钟,然后调试了一个小时。基本上每个case修改点小地方,这编程节奏也是醉了,如果正式笔试没有提示wrong answer。早就挂了。总结一些,以防后续出现类似的情况。1.一般如果笔试,拿到题就想快点写,一般首先想到的肯定是最普通的解决办法,那样,基本上是过不...

2018-06-03 11:39:33 349

原创 leetcode(845) Longest Mountain in Array

题:Let's call any (contiguous) subarray B (of A) a mountain if the following properties hold:B.length >= 3There exists some 0 < i < B.length - 1 such that B[0] < B[1] < ... B[i-1] < B...

2018-06-03 11:23:57 616

原创 C++:已知行数和列数的vector二维数组

 自己本地调试代码的时候,老是需要用vector创建一个已知行数,列数的二维数组,所以,总结一下,vector数组的初始化问题。

2018-06-02 22:10:13 2821

原创 编程常见知识点

也刷了一些题了,准备开始总结一波。后续也会一直添加更详细的。五大常用算法:穷举算法,贪婪算法,动态规划,分治算法,回溯算法(深度优先策略的典型应用),分支限界算法(广度优先的典型应用)。常考数据结构:链表(反转,删除节点等的一些问题)                    :二叉树(常用递归解决问题)                    :字符串常用编程技巧:上述算法熟练使用          ...

2018-06-02 21:48:14 750

原创 leetcode 92. Reverse Linked List II

题意:反转一个list n-m之间的节点每次遇到链表的题都得调试很久,因为很容易考虑不全面和出错。取节点的内容时候,一定要判断结点是否为NULL。同时要注意是否是从头节点开始反转,然后反转的位置,节点数和链表的关系。注意考虑全面。一般涉及链表节点间的操作都要考虑保存三个节点再考虑转向问题。下面是我的代码。       class Solution {public:    ListNode* rev...

2018-06-01 12:21:52 102

原创 leetcode 63. Unique Paths II

题意:一个二维数组从左上角到右下角的路径数,为1表示有故障不可通行。由于最近经常做DFS的题。拿到题首先想到的是递归的解法,所有超时了。发现DP的解法非常简单。discuss里有非常容易理解的解法。下面是我的递归解法,也很简单,贴出来,提醒自己一些易错的点。注意左上点和右下点为1的情况要考虑。int result = 0;int row = 0;int column = 0;int uniqueP...

2018-05-31 21:48:13 188

原创 leetcode 33. Search in Rotated Sorted Array

leetcode第33题,题目比较简单,相当于就是在前后部分都是有序的序列中找target.马上就会想到二分查找,关键是先找到两个有序序列的分界点,同样分界点也是用二分查找找。容易忽略的点是可能整个序列没有rotate,就是一个上升序列。class Solution {public:    int search(vector<int>& nums, int target) { ...

2018-05-30 10:39:46 79

原创 leetcode 79.Word Search

题意:在一个char的二维数组里头找给出的一个字符串,找的方向只能上下左右。且每个char都最多只能用一次。  比较容易忽略的是每个char最多只能用一次,所以,需要一个visited数组,记录是否已经被访问了。关键点也在于visited的维护,如果当前路径不是合理路径,记得visited[i][j]得重新置为false.下面是我的代码。bool findNext(vector<vector...

2018-05-29 16:42:27 102

原创 编程节奏&&C++编程bug点总结

每次写代码,算法设计出来后,还是需要本地调试很多次以后才能AC。一些易出错的地方总结。拿到一个编程题:1.先审清楚题,注意看有些题后有note和示例。2.考虑异常,边缘情况。3.设计算法,(可以通过各种案例找到算法思路,然后总成统一合理的算法,注意算法的全面性)4.优化算法5.编代码(注意良好的代码习惯,有利于后续调试)6.编写完检查一下是否有粗心造成的错误(比如我老是喜欢把==写成=,有时候没注...

2018-05-29 15:57:01 211

原创 C++对象模型

在c++中,有两种class data members:static 和 nonstatic ,以及三种三种class member function:static ,nonstatic,和 virtualc++对象模型Nonstatic data members被配置于每一个class object之内,static data members则被存放在个别的class object之外,Sta...

2018-03-08 08:38:10 113

原创 STL配接器原理

详细内容可以参考《STL源码剖析》//插入迭代器适配器将一般迭代器的赋值操作转变为插入操作。back_insert_iteratorfront_insert_iteratorinsert_iterator::因为这三个iterator adapters的使用接口不是十分直观,给一般用户带来困扰,因此STL提供三个相应函数:back_inserter(),front_inserter(),inser...

2018-03-07 17:35:09 190

原创 STL容器底层原理及容器操作总结

最近在总结C++的一些知识,所有内容都来自<<STL源码剖析>>,更详细的内容大家可以参考这本书。vector:vector的数据结构:单向开口线性连续空间。迭代器就是一个普通指针,Random Access Iterator注意:对vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。List:List的数据结构:List是一个双向链表,...

2018-03-07 17:02:02 518

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除