题目描述: 题目编号:1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表.例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次. 你可以按任意顺序返回答案.   示例 1: 输入:["bella","label","roller"] 输出:["e","l","l"…
1.思路 假设链表......---A--B--C--D....,要删除B.一般的做法是遍历链表并记录前驱节点,修改指针,时间为O(n).删除节点的实质为更改后驱指针指向.这里,复制C的内容至B(此时B,C同时指向D),删除节点C,即达到间接删除节点B的目的. 倘若B是链尾节点.则需要线性遍历寻找前驱节点. 以上思路,时间复杂度为O(1). 2.代码 struct ListNode { int m_nKey; ListNode* m_pNext; }; void DeleteNode(ListN…
题目描述 这是2021广联达校招提前批笔试算法题之一. 我们希望一个序列中的元素是各不相同的,但是理想和显示往往是有差距的.现在给出一个序列A,其中难免有相同的元素,现在提供了一种变化方式,使得经过若干次操作后一定可以得到一个元素各不相同的序列. 这个操作是这样的,令x为序列中最小的重复数字,你需要删除序列左数第一个x,并把第二个x替换为2*x.请你输出最终的序列. 例如原序列是[2,2,1,1,1],一次变换后变为[2,2,2,1],两次变换后变为[4,2,1],变换结束. 输入描述 输入第一…
众所周知,很多社区都是有内容审核机制的,除了第一次发布,后续的修改也需要审核,最粗暴的方式当然是从头再看一遍,但是编辑肯定想弄死你,显然这样效率比较低,比如就改了一个错别字,再看几遍可能也看不出来,所以如果能知道每次都修改了些什么,就像git的diff一样,那就方便很多了,本文就来简单实现一个. 求最长公共子序列 想要知道两段文本有什么差异,我们可以先求出它们的公共内容,剩下的就是被删除或新增的.在算法中,这是一道经典的题目,力扣上就有这道题1143. 最长公共子序列,题目描述如下: 这种求最值…
有1,2,……一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度为O(1),使用交换,而且一次只能交换两个数. 这个是以前看到的算法题,题目不难.但是要求比较多,排序算法中,时间复杂度为O(n)就是基数排序了. 现在介绍两种解法: 解法一:用数组特性——下标实现交换 扫描数组,每次arr[i],arr[arr[i]-1]交换,如果arr[i]=i+1,则什么都不做.这样交换一次保证一个数字被放到它应该被放置的位置上.最后数组有序. #include <vector> #i…
问题 怎样找出一个序列中出现次数最多的元素呢? 解决方案 collections.Counter 类就是专门为这类问题而设计的, 它甚至有一个有用的 most_common() 方法直接给了你答案 collections.Counter 类 1. most_common(n)统计top_n from collections import Counter words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 't…
前言 打卡第一天 2019.10.26日打卡 算法,即解决问题的方法.同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的.这就需要我们学习算法,找出哪个算法更好. 大家都知道,算法是在面试大厂时不可或缺的一环. 而作为普通程序员的我们在工作中大都不怎么接触算法,那么如果以后想要进入大厂工作,提升自己,就必须通过刻意的练习,掌握算法和数据结构,提高编程能力. "好"算法的标准 对于一个问题的算法来说,之所以称之为算法,首先它必须能够解决这个问题(称为准确性).其…
一.一道题目引发我对map函数的考量 首先是题目大意:有n个银行,a[i]表示这个人在第i个银行有a[i]块钱(可以是负数),所有银行的钱加起来正好是0.每次只能在相邻的银行之间转账,问最少要转多少次就能使所有的a[i]的值为0.其中1和n相邻. 数据范围: n (1 ≤ n ≤ 100 000)ai ( - 1e9 ≤ ai ≤ 1e9) 解题思路: 我自己原先的思路是随机选定一个点,比如我选择数组的第一个点(当这个点不为0,为0就选下一个),向左走或者向右走,直到走到倒数第一个不为0的值,然…
题目描述 The numberic keypad on your mobile phone looks like below: 123 456 789  0  suppose you are holding your mobile phone with single hand. Your thumb points at digit 1. Each time you can 1)press the digit your thumb pointing at.2)moveyour thumb righ…
今天群里有个人问了一个问题,代码如下: $a = 3; $b = 2; if ($a = 2 || $b = 5) {     ++$a; } echo $a; 说代码段的执行的结果为1,问大家$a的值为什么不是3. 我看到这段代码后,和提问者的想法一样,也以为$a的值应该是3. 然后就有人说了,因为 | | 的优先级高于 = ,所以($a = 2 || $b = 5)应该写成($a = ( 2 || $b = 5)), ( 2 || $b = 5)的“或”运算结果为True,将它赋值给变量a,…