![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 74
轻华
这个作者很懒,什么都没留下…
展开
-
震惊!他居然使用这种方式实现多线程交替打印数字0-100
今天听到某个群友去面试,挂在了多线程交替打印0-100算法上,当时我都震惊了,心想这种题目不是有手就行么,哈哈。但嘴上还是安慰他,很正常的,继续加油骚年OK 进入正题!两个线程交替打印数字0 - 100线程1 : 1线程2 : 2线程1 : 3线程1 : 4其实这里,你需要解决两个问题;问题一:操作数 i 线程安全问题举例,两个线程对同一个数加50次,最终总数肯定加不到100,不信你可以试一下(手动狗头)解决这个问题很简单,使用 volatile 关键字?原创 2024-05-09 16:45:47 · 290 阅读 · 1 评论 -
算法之链表篇---相交链表
链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/description/?其实看到这题我最先想到的做法,就是在链表中维护一个计数器,然后遍历两个链表,当便利到某个节点计数器 + 1 等于2时,就进行返回;两链表相交,节点从是否相交来分类,其实就是两种一种是有共同节点,一种是没有共同节点;指针B遍历完链表2后遍历链表1,两指针最后结果都为null。设链表1长度为a,链表2长度为b,链表相交长度为c。时间复杂度 :O(n)原创 2024-03-14 23:26:24 · 289 阅读 · 1 评论 -
Random类源码解析
刚才敲代码时,将Random的API记错了,导致随机一直失败。因此打算写一篇博客警醒大家。问题 Random random = new Random(2); System.out.println(random.nextInt(10));这段代码指向一百次,请问会输出什么?有的人可能会说,这我怎么知道?这是随机数呀!但是我告诉你,答案只有一个!!就是 8原因传入一个固定的 seed,经过nextInt()计算 也是唯一的。有的人可能会疑惑了,这是为什么勒?它原创 2021-09-03 10:00:50 · 1132 阅读 · 2 评论 -
C++实现链表
链表初始化链表的初始化是必要的。只有初始化后,稍后的插入、删除等操作才能使用。头结点不存放数据将头结点指针域置空注意是头结点的指针域为nullptr,而不是整个头结点为nullptr// 初始化链表void Init(LinkedNode *&L){ L = (LinkedNode *) malloc(sizeof (LinkedNode)); L->next = nullptr;}链表插入链表的插入,需要找到那个指针域为空的结点void Insert原创 2021-04-26 20:02:23 · 1208 阅读 · 0 评论