顺时针九十度旋转矩阵 题目:给定一个nn的矩阵,顺时针把矩阵旋转90度。比如说{{1,2,3}{4,5,6}{7,8,9}}。顺时针旋转90度为{{7,4,1}{8,5,2}{9,6,3}}。解法一:时间复杂度为o(nn),空间复杂度为o(n)。步骤:(1)把矩阵的行当做一个整体,逆序矩阵中的行,也就是说把matrix[i]行和matrix[len - i]进行交换。(2)在交换后的矩阵中,按照对角线交换每个数,...
数组0,1和数组0,1,2排序 数组有0和1,将0排在1之前思路:采用两个指针,一个从前一个从后。p0找到不为0的值,p1找不到不为1的值,二者进行交换。void sort2(int* arr,int len){ int p0=0; int p1=len-1; while(p0<=p1) { if(arr[p0]==0) p0++; if(arr[p1]==1) p1--; swa...
搭积木 题目描述小明有一袋子长方形的积木,如果一个积木A的长和宽都不大于另外一个积木B的长和宽,则积木A可以搭在积木B的上面。好奇的小明特别想知道这一袋子积木最多可以搭多少层,你能帮他想想办法吗?定义每一个长方形的长L和宽W都为正整数,并且1 <= W <= L <= INT_MAX, 袋子里面长方形的个数为N, 并且 1 <= N <= 1000000.假如袋子里共有...
从n个数中选出m个数的组合 找出从自然数1,2,3,…,n中任取m个数的所有组合。例如:n=5,m=3时,所有组合为543,542,541,532,531,521,432,431,421,321。#include<iostream>#include<cstdio> #define N 4 //被选择的数目#define M 2 //要选出来的数目 using namesp...
小米笔试题 世界上有10种人,一种懂二进制,一种不懂。那么你知道两个int32整数m和n的二进制表达,有多少个位(bit)不同么?示例1输入1999 2299输出7class Solution {public: /** * 获得两个整形二进制表达位数不同的数量 * * @param m 整数m * @param n 整数n * @ret...
【每日leetcode】路径总和、路径总和II、路径总和III 路径总和给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ \ 7 ...
【每日leetcode】二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入:1/ 2 35输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3/** * Definition for a binary tree node. * struct ...
找到所有数组中消失的数字 给定一个范围在 1 ≤ a[i] ≤ n ( n = 数组大小 ) 的 整型数组,数组中的元素一些出现了两次,另一些只出现一次。找到所有在 [1, n] 范围之间没有出现在数组中的数字。您能在不使用额外空间且时间复杂度为O(n)的情况下完成这个任务吗? 你可以假定返回的数组不算在额外空间内。示例:输入:[4,3,2,7,8,2,3,1]输出:[5,6]参考大神的!太溜了思路:...
【每日leetcode】移掉k位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。注意:num 的长度小于 10002 且 ≥ k。num 不会包含任何前导零。示例 1 :输入: num = “1432219”, k = 3输出: “1219”解释: 移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219。示例 2 :输入: num = “10200”, k ...
【每日leetcode】分糖果、分糖果II 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。最优分配方案:妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多。...
全排列中缺少的数 对K个不同字符的全排列组成的数组,面试官从中随机拿走了一个,剩下的数组作为输入,请帮忙找出这个被拿走的字符串?比如[“ABC”,“ACB”,“BAC”,“CAB”,“CBA”]返回“BCA”思路:递归进行全排列,每一个排列出来的数在输入中查找是否存在。#include<iostream>#include<vector>#include<string> ...
句子反转 句子反转,“I am a boy.” 反转后“boy a am I”注意:句号没有了,最后没有空格。开始犯了好大问题,输入不能用cin,这样不会把空格作为字符串的一个字符,而是到空格就结束了。#include<iostream>#include<stack>#include<string> using namespace std;int main(...
腾讯2017秋招笔试编程题 游戏任务标记游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。 输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。 输出一个参数,如果第二个ID的任务已经完成输出1,如果未完成输出0。如果...
网易2018 c++开发部分题以及编程题 如果C类子网的掩码为255.255.255.240,则包含的子网位数、子网数目、每个子网中的主机数目正确的是( )4 14 14解析:首先C类地址掩码为255.255.255.000 。可知子网号为240(1111 0000) 。所以子网位数为4,对于分类的IPv4地址进行子网划分时,子网号不能使用全1和全0(CIDR却可以),所以子网数为16-2=14。又因为主机号全0表该网络地...
360公司2018笔试编程题 画板沫璃有一个画板,画板可以抽象成有100行每行100个像素点的正方形。沫璃在画板上画画,她一共画了n次,每次将一个矩形涂上颜色。沫璃想知道一共有多少个像素点被她涂过颜色。若一个像素点被涂了k次,那么认为有k个像素点被涂过颜色。输入描述:第一行一个数T(T<=100),表示数据组数。对于每组数据,第一行一个整数n , (1<=n<=100)接下来n行,每行4个整数x1, y...
【网易2019编程题】 俄罗斯方块小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块。因为它比较古老,所以规则和一般的俄罗斯方块不同。荧幕上一共有 n 列,每次都会有一个 1 x 1 的方块随机落下,在同一列中,后落下的方块会叠在先前的方块之上,当一整行方块都被占满时,这一行会被消去,并得到1分。有一天,小易又开了一局游戏,当玩到第 m 个方块落下时他觉得太无聊就关掉了,小易希望你告诉他这局游戏他获得的分数。输...
判断字符串是否可以由字典中的字符串组成 字节跳动面试时的一到问题给定一个字符串s和一个字典dict,判断字符串能否有字典中的字符串组成,字典中的字符串可以出现多次。例如s=“Ilovebytedance”,dict={“I”,“love”,“bytedance”}用动态规划,dp[i]表示字符串s[0~i]是否可分的bool值。c++代码 bool wordBreak(string s, unordered_set<st...
[每日leetcode]二叉树的锯齿形层次遍历 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[[3],[20,9],[15,7]]/** * Definition for a bi...
【程序员金典】双栈排序 题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[] numbers(C++中为vector<int>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到最后一个元素。测试样例:[1,2,3,4,5]返回:[5,4,3,2,1...