问题 一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 解决 //1、利用hashset的特性进行判断 class Solution { public int[] singleNumbers(int[] nums) { int len1=nums
17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入:digits = "23" 输出:["ad","ae","af","bd","be","bf","cd",&qu
15. 三数之和 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: 输入:nums = [-1,0,1,2,-1,-4] 输出:[[-1,-1,2],[-1,0,1]] 示例 2: 输入:nums =
#include <iostream> #include <vector> #include <algorithm> using namespace std; class Print { public: void operator()(int i) { cout << i << endl; } }; int main() { vector<int> v; for(int i = 0; i
"""阶乘思路: 求8的阶乘:8*(8-1)...*1 所以结束条件就是最后乘到1 步骤: 先定义一个函数,结束条件为乘到1,然后返回1挂起的return中 """ def f (n): if n == 1: return 1 return n *f(n-1) #8*f(7) 7*f(6) 6*f(5) 5*f(4) 4*f(3) 3*f(2) 2*f(1) ret =
因为最近刚刚入职,所以要学习很多的东西,没有多少时间来刷题和学习。最近刚刚忙完一阵,回归刷题。因为转了GO,所以以后刷题用go和java各刷一遍 452. 用最少数量的箭引爆气球 思路:首先按照气球的起始位置排序。i和j,遍历气球。从i到j个气球的尾部如果都包括第j个气球的尾部,那么j++,否则i=
T1 数据结构 第一个操作很好实现,只需要增加 \(x^k\) 即可 第二个操作是瓶颈,暴力做是不行的 瓶颈在操作 \(2\),若是可以减少操作 \(2\) 的复杂度,就可以通过本题 怎么做呢?我们知道每个数到底被加了几次,就可以一次性算出它的贡献 我们每次操作 \(2\) 使用一个懒标记,加入 \(x\) 就是加
note 本次测试基于前文 本次测试内容: 当写文件中途, 取下U盘后, 此时, 执行关闭文件, 观察能否正确关闭文件 结论 当写文件中途, 取下U盘后, 此时, 执行关闭文件, 能正确关闭文件流。 测试代码 void call_write(const std::string& file_name) { FILE* pfile = nullptr; errno_t re
扩展欧拉定理,用来求幂 1 int pow(int x, int y, int mod) { 2 if (y >= p[mod]){ 3 return pow(x, y%p[mod] + p[mod], mod);//扩欧拉,p表示欧拉函数 4 } 5 int ret = 1; 6 while (y){ 7 if (y & 1){ 8 ret *= x; 9
剑指 Offer 58 - I. 翻转单词顺序 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。 示例 1: 输入: "the sky is blue" 输出: "blue is sky the" 示例 2: 输入
剑指 Offer 56 - II. 数组中数字出现的次数 II 在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。 示例 1: 输入:nums = [3,4,3,3] 输出:4 示例 2: 输入:nums = [9,1,7,9,7,9,7] 输出:1 限制: 1 <= nums.length <= 10000 1 <= n
一 利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa会变为a2bc5a3。 1.如果只有一个字符,1不用写 2.字符串中只包含大小写英文字母(a至z)。 数据范围: 0<=字符串长度<=50000 要求:时间复杂度O(N) 示例1 输入: "aabcccccaaa" 复制 返回值: "a2bc
PySNMP 是一个纯粹用Python实现的SNMP,用PySNMP的最抽象的API为One-line Applications,其中有两类API:同步的和非同步的,都在模块pysnmp.entity.rfc3413.oneliner.cmdgen 中实现,如下是Get方式与Walk方式的基本实现. 首先需要在系统中安装SNMP客户端,对于Linux平台来说只需要执行如
传送门 思路 先考虑一个暴力的 DP,设 \(f_{u,i}\) 表示 \(u\) 子树内所有点权值在 \([1,i]\) 内的方案数,转移考虑 \(u\) 的权值,若 \(u\) 权值为 \(i\),那么显然只需要儿子子树合法即可,否则就变成了一个 \([1,i-1]\) 的子问题,因此有转移: \[f_{u,i} = f_{u,i-1} + \prod_{v \in son_u}
剑指 Offer 45. 把数组排成最小的数 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: [3,30,34,5,9] 输出: "3033459" 提示: 0 < nums.length <= 100 说明: 输出结果
剑指 Offer 44. 数字序列中某一位的数字 数字以0123456789101112131415…的格式序列化到一个字符序列中。在这个序列中,第5位(从下标0开始计数)是5,第13位是1,第19位是4,等等。 请写一个函数,求任意第n位对应的数字。 示例 1: 输入:n = 3 输出:3 示例 2: 输入:n = 11 输出:0 限制: 0 <=
class Solution { public: static bool mycomp(pair<string, int> a, pair<string, int> b) { return a.first < b.first; } vector<int> smallestTrimmedNumbers(vector<string>& nums, vector<vector<int>>
一、简介 C++语言中的异常处理机制try-catch相信很多人都用过或者了解,但是我们平时只是使用,并未对这样的异常处理机制底层原理进行过深入探索,为了了解异常机制的底层原理,在此使用C语言实现了一个功能类似的简单版异常处理机制,包括Try、Catch、Throw、Finally。 二、Linux的跳转函
SP1043 GSS1 要你求一个区间的最大子段和。 那么,显然地,我们可以维护区间最大前缀和和后缀和。 即根据左区间后缀和加上右区间前缀和可以等于最大子段和这个性质。 那么如何维护最大前缀和和最大后缀和呢? 显然一段区间分成两块,最大前缀和有可能是左区间的最大前缀和,也有可能是左
/// <summary> /// 获取时间戳 /// </summary> /// <param name="bflag">true 秒 , false 毫秒</param> /// <returns></returns> public static string GetTimeStamp(bool bflag)
package com.huawei.hmnewexperience.util; import org.springframework.util.CollectionUtils; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Collections; import java.util
洛谷题面传送门 一道很烦的网络流题,代码每一块的结构都很清晰,但是拼起来就让人觉得很烦…… 首先此题的一大难点在于读题,我一开始傻傻地以为散点没有用,心想这题不是 sb 状压 dp 吗,后来才发现是自己都错题了……事实上本题正确的题意如下: 对于血缘链上的点,任何一条链上的第 \(j\)
有时一个程序需要单例运行,因为涉及到上下位连接,数据库访问,安全性等问题,本博客来探讨如何实现WPF 程序的单例运行。 措施: 利用 System.Threading.Mutex 来实现控制程序的单例运行。 这是MSDN 官方的资料: Mutex : http://msdn.microsoft.com/en-us/library/system.threadin
mp3Recorder模块封装在iOS、Android下录音直接生成mp3,统一两个平台的录音生成文件,方便双平台之间的交互,减少录音完成后再转码的过程;同时提供分贝波形图显示UI;使用该模块前需要打开麦克风权限。 效果图如下: 固件要求:Android:4.0及以上 iOS:8.0及以上 该模块提供了8个接口: addEven
#include<iostream> using namespace std; #include<string> //创建通讯录存储最多的人数 #define MAX 1000 //创建联系人结构体 struct Person { string name; int sex; int age; int phone; string adder; }; //创建通讯录结构体 struct Adressbook { struct Pers