摘要: 一、最常用——恒等变换 题目描述 N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。 输入格式 每个案例第一行两个整数N,M,2 <= N ,M<= 2 阅读全文
posted @ 2021-03-10 15:49 徐不二 阅读(35) 评论(0) 推荐(0)
摘要: 这里主要归纳一下C++中数组的sort()函数。 sort函数的用法是: #include <algorithm> …… sort(firtst,end,cmp); 其中,first代表开始位置,end代表结束位置,cmp代表排序规则,可以自定义,也可以省略(默认非降序)。 可以自定义cmp函数对于 阅读全文
posted @ 2021-03-09 21:23 徐不二 阅读(89) 评论(0) 推荐(0)
摘要: 对于vector数组的使用,不要为了使用而使用,能用普通的就用普通的,特别是在题目中已经说了人数或者其他表明数组大小的信息的情况下。vector能够动态变化固然有其好的方面,但是在许多方面是不如普通的数组的,比如遍历,特别是维数增加之后。 简单总结一下最近遇到的问题: 对于vector数组的遍历: 阅读全文
posted @ 2021-03-09 19:30 徐不二 阅读(132) 评论(0) 推荐(0)
摘要: 编写一个函数,检查输入的链表是否是回文的。 我的思路: 1.如果能知道长度的话,就可以把前半段链表倒置,然后与后半段依次判断。 2.直接把整个链表倒置,再依次比对,但时间复杂度满足不了O(n)。 /** * Definition for singly-linked list. * struct Li 阅读全文
posted @ 2021-03-08 16:05 徐不二 阅读(75) 评论(0) 推荐(0)
摘要: 算法一: 遍历字符串s1,每次取当前元素之前的字串head和之后的字串tail,判断tail+head是否为s2即可。 class Solution { public: bool isFlipedString(string s1, string s2) { int len1= s1.length() 阅读全文
posted @ 2021-03-06 09:40 徐不二 阅读(83) 评论(0) 推荐(0)
摘要: 一、旋转矩阵 1.旋转90° 矩阵转置后再沿着对称线对称即可 class Solution { public: void rotate(vector<vector<int>>& matrix) { int n = matrix.size(); if(n==0||n==1){ return; } fo 阅读全文
posted @ 2021-03-06 08:51 徐不二 阅读(64) 评论(0) 推荐(0)
摘要: 今天碰到了一个关于回文串的问题:判断一个字符串重新排列后能否形成一个回文串。 个人初始思路:统计每种字符在字符串中的出现次数,最后如果次数为奇数的多于一个,则false。但是用于存储字符串出现次数的数组不能用s.length来构造,因为是变量。 解答思路:通过使用unordered_map<char 阅读全文
posted @ 2021-03-03 09:43 徐不二 阅读(77) 评论(0) 推荐(0)
摘要: 今天刷的是offer题:判断两个字符串是否为字符重排 由于时间原因,我最先想到的是遍历第一个字符串,然后从第二个字符串中每次删除第一个字符串中遍历的字符,如果最后剩下的是空串则返回true,否则返回false。 代码如下: 1 class Solution { 2 public: 3 bool Ch 阅读全文
posted @ 2021-01-20 13:11 徐不二 阅读(86) 评论(0) 推荐(0)