当前位置: 代码迷 >> 综合 >> ARTS 2019 05 05 (29)
  详细解决方案

ARTS 2019 05 05 (29)

热度:17   发布时间:2023-12-10 02:47:56.0

ARTS
Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip/Tech:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章;

Algorithm

438 找到字符串中所有字母异位词

https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/
在这里插入图片描述
其实这种题目就是滑动窗口,和哈希思想。针对这种题目用到的技巧的就是双端队列(链表)和字母数组。
具体 的步骤我写在代码的注释里了,我们来看看代码:

class Solution {
    public List<Integer> findAnagrams(String s, String p) {
    int[] charNumArray1 = new int[26];int[] charNumArray2 = new int[26];ArrayList<Integer> res =new ArrayList<>();LinkedList<Character> list2 = new LinkedList<Character>();// 先确定p中的字母的数量for (int i = 0, len = p.length(); i < len; ++i) {
    charNumArray1[p.charAt(i) - 'a']++;}int start = 0;char[] charArray = s.toCharArray();// 遍历s字符数组for (int i = 0, len = charArray.length; i < len; ++i) {
    list2.add(charArray[i]);// 更新第二个存储字符数据的数组的数据。charNumArray2[charArray[i] - 'a']++;// 保证队列中的元素的数量是和p相同。同时保证‘存储字符数据的数组’数据正确。if (list2.size() > p.length()) {
    char charTemp = list2.removeFirst();charNumArray2[charTemp - 'a']--;start++;}// 比较数量和对应的字母数量是否相同if (list2.size() == p.length()) {
    if (isInclude(charNumArray2, charNumArray1)) res.add(start);}}return res;}public boolean isInclude(int[] charNumArrayS, int[] charNumArrayT) {
    for (int i = 0, len = charNumArrayT.length; i < len; ++i) {
    if (charNumArrayS[i] != charNumArrayT[i])  return false;}return true;}
}

Review

Let’s code a TCP/IP stack, 5: TCP Retransmission

http://www.saminiir.com/lets-code-tcp-ip-stack-5-tcp-retransmission/

  • Automatic Repeat Request
  • TCP Retransmission
  • Karn’s Algorithm
  • Managing the RTO timer
  • Requesting retransmission
  • Trying it out
  • Conclusion
  • Sources

讨论了TCP的重传机制。涉及一些时间控制器,以及重传一些算法等等。

Tip/Tech

分桶法来进行对不同的数组信息进行分类,我感觉这个很适合在答案需要由大到小的情况下,各种的分类的情况进行讨论。
顺便了解了一下桶排序的思想。

Share

寒窑赋

人生在世,富贵不可尽用,贫贱不可自欺

寒窑赋 (全文)
天有不测风云,人有旦夕祸福。蜈蚣百足,行不及蛇;雄鸡两翼,飞不过鸦。马有千里之程,无骑不能自往;人有冲天之志,非运不能自通。
盖闻:人生在世,富贵不能淫,贫贱不能移。文章盖世,孔子厄于陈邦;武略超群,太公钓于渭水。颜渊命短,殊非凶恶之徒;盗跖年长,岂是善良之辈。尧帝明圣,却生不肖之儿;瞽叟愚顽,反生大孝之子。张良原是布衣,萧何称谓县吏。晏子身无五尺,封作齐国宰相;孔明卧居草庐,能作蜀汉军师。楚霸虽雄,败于乌江自刎;汉王虽弱,竟有万里江山。李广有射虎之威,到老无封;冯唐有乘龙之才,一生不遇。韩信未遇之时,无一日三餐,及至遇行,腰悬三尺玉印,一旦时衰,死于阴人之手。
有先贫而后富,有老壮而少衰。满腹文章,白发竟然不中;才疏学浅,少年及第登科。深院宫娥,运退反为妓妾;风流妓女,时来配作夫人。
青春美女,却招愚蠢之夫;俊秀郎君,反配粗丑之妇。蛟龙未遇,潜水于鱼鳖之间;君子失时,拱手于小人之下。衣服虽破,常存仪礼之容;面带忧愁,每抱怀安之量。时遭不遇,只宜安贫守份;心若不欺,必然扬眉吐气。初贫君子,天然骨骼生成;乍富小人,不脱贫寒肌体。
天不得时,日月无光;地不得时,草木不生;水不得时,风浪不平;人不得时,利运不通。注福注禄,命里已安排定,富贵谁不欲?人若不依根基八字,岂能为卿为相?
吾昔寓居洛阳,朝求僧餐,暮宿破窖,思衣不可遮其体,思食不可济其饥,上人憎,下人厌,人道我贱,非我不弃也。今居朝堂,官至极品,位置三公,身虽鞠躬于一人之下,而列职于千万人之上,有挞百僚之杖,有斩鄙吝之剑,思衣而有罗锦千箱,思食而有珍馐百味,出则壮士执鞭,入则佳人捧觞,上人宠,下人拥。人道我贵,非我之能也,此乃时也、运也、命也。
嗟呼!人生在世,富贵不可尽用,贫贱不可自欺,听由天地循环,周而复始焉。