刷刷题
wonengguwozai
欢迎爱技术的同行交流
展开
-
几个刷题网站
刷题网站原创 2023-03-18 15:40:11 · 323 阅读 · 1 评论 -
面试中值得关注的问题(项目+通用问题)
机器学习理论类:写出全概率公式&贝叶斯公式模型训练为什么要引入偏差(bias)和方差(variance)? 证CRF/朴素贝叶斯/EM/最大熵模型/马尔科夫随机场/混合高斯模型如何解决过拟合问题?One-hot的作用是什么?为什么不直接使用数字作为表示决策树和随机森林的区别是什么?朴素贝叶斯为什么“朴素naive”?kmeans初始点除了随机选取之外的方法LR明明是分类模型为什么叫回归梯度下降如何并行化梯度下降如何并行化LR中的L1/L2正则项是啥简述决策树构建过程解原创 2020-06-18 11:43:32 · 426 阅读 · 0 评论 -
24点问题_快手
问题描述:给玩家4张牌,每张牌牌面值在1~13之间,允许其中有数值相同的牌。采用加、减、乘、除四则运算,允许中间运算存在小数,并且可以使用括号,但每张牌只能使用一次,尝试构造一种表达式,使其运算结果为24.如输入:3 3 7 7 输出:(((3)/(7))+(3))*(7)实现思路遍历所有可能的组合(对四个运算符在三个位置所有排列方式,非全排列(四个字符,三个位置)),然后对运算符的全排列的每一种形式与四个数字串联起来构成一个表达式,对这个表达式通过不同加括号的方式(分治法求解)求取对应表达式.原创 2021-03-25 18:38:31 · 1106 阅读 · 0 评论 -
c++理论相关知识点_Aibee
1. vector的实现原理(详细含代码解析可参照:https://blog.csdn.net/qq_36534818/article/details/76559835)* 内部实现如图:* vector的数据安排及操作方式与array非常相似。两者的唯一差别在于空间运用的灵活性。array是静态空间,一旦配置好了就不能改变了,如果程序需要一个更大的array,只能自己再申请一个更大的array,然后将以前的array中的内容全部拷贝到新的array中。vector是动态空间,随着元素的加入,它原创 2021-03-25 14:32:01 · 193 阅读 · 0 评论 -
leetcode_152_乘积最大子数组(快手)
题目:给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组解题思路:(1)定义历史最大变量i_max和历史最小变量i_min(2)遍历数组时计算当前最大值,不断更新:若当前值num[i] < 0时,交换i_..原创 2021-03-21 22:17:16 · 139 阅读 · 0 评论 -
leet_16.06_两数组最小差_aibee题目
问题:给定两个整数数组a和b,计算具有最小差绝对值的一对数值(每个数组中取一个值),并返回该对数值的差解题思路先排序,然后设定返回值为最大,用双指针求得结果。代码class Solution {public: int smallestDifference(vector<int>& a, vector<int>& b) { sort(a.begin(),a.end()); sort(b.begi..原创 2021-03-21 22:02:17 · 219 阅读 · 0 评论 -
直线经过的网格区域计算(didi)
问题描述:在一给定画布场景中,判断线段所经过网格。下图所示分别为线性递增和线性递减时,直线经过的网格路径。分析回归问题本身,直线经过网格,就必然会与网格线产生交点,因此,可考虑此种策略:①先分别遍历直线与网格横纵交点(需考虑沿X轴和Y轴递增递减性质);②根据直线与网格横纵交点求出交点位置跨越的网格序列号,且存在以下规律:1)当交点在横轴2)当交点在纵轴具体实现...原创 2021-03-19 09:58:31 · 2652 阅读 · 0 评论 -
不同进制转换
一、任意进制转十进制代码实现代码实现选择从后向前遍历,将控制台输入的数字以字符串存储public class Main { public static void main(String []args){ String input ="10110110"; char in[]=input.toCharArray(); double value=0;//十进制数值 int j=0;//阶数 double temp;原创 2020-11-11 20:30:42 · 155 阅读 · 2 评论 -
经典算法--最大存水量问题
本文为转载文章,转载链接题目:给出一个数组代表围柱的高度,求能围柱的最大的水量,例如数组{ 5,2,3,2,4 },最大水量为5。如下图:黄色部分为围柱,绿色部分是能够围住的水,图中围柱的高度依次为 5,2,3,2,4最多能围住的水量是5。这里写图片描述思路:求出每个柱子上面能够存多少水,然后将每根柱子的存水量相加便能得到总的存水量,为求出每根柱子上能够存多少水,就要求出每根柱子左边最高的和右边最高柱子,然后用两者的最小值减去当前柱子的高度。 例如图中从左到右第二根柱子的高度为2,它左边最高柱子的转载 2020-10-20 10:55:45 · 828 阅读 · 1 评论 -
求前K个最大的数(排序问题)
求前K个最大的数(排序问题)问题:g给出无序序列,求前k大(小)的数,或求第k大(小)的数。分析:1、利用快排的思想 : 快速排序每一轮其实将左右两个子序列排好序(分割点后序列中的所有数字均大于分割点前的所有数字)如果分割点是K那么很容易得到前k大(小)的数字。时间复杂o(n)2、堆排序,可以直接找到前K个最大的数即可。堆排序重要操作:1、堆调整(基于大顶堆或小顶堆调整),2、基于堆调整进行建堆 3、将对顶元素删除,并使用最后一个叶节点的元素覆盖堆顶 4、进行堆调整,5、反复进行3,、4步,直到原创 2020-09-05 09:31:18 · 2613 阅读 · 0 评论 -
leet_199_Binary_tree_right_side_view(二叉树右视图)
leet_code:地址问题描述:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。测试用例:输入:[1,2,3,null,5,null,4]输出:[1, 3, 4]解题方法:二叉树层次遍历法:注意点:1、注意边界条件(二叉树为空等等)2、对每一层的节点数进行统计,以计算出每层中最后一个节点(最右侧节点)c++代码:#...原创 2019-02-13 18:08:23 · 190 阅读 · 0 评论 -
leet_763_partirion_Labels(基于字符出现的频率切分字符串)
leet_code:链接问题描述:给定又一些小写字符组成的字符串,尽可能多的切分出子串,使得 每个字符在该子串中出现的次数最多,并依次返回各子串的长度。输入输出样例:Input: S = “ababcbacadefegdehijhklij”Output: [9,7,8]解析:The partition is “ababcbaca”, “defegde”, “hijhklij”.T...原创 2019-04-11 19:16:39 · 213 阅读 · 0 评论 -
leet_452_find_min_arrow_shots(用最少数量的箭引爆气球)
leetcode:地址问题描述:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且...原创 2019-03-18 20:26:29 · 181 阅读 · 0 评论 -
leet_435_non_overlap_intervals(删除几个区间后各区间不重叠)
leetcode:地址问题描述:给定一个区间集合,尝试删除最少数量的区间使得所有区间不重合,求最小区间数。输入输出样例:输入:[ [1,2], [2,3], [3,4], [1,3] ]输出:1解释:删除一个区间[1,3]后所有区间均不重合。分析:贪心算法(局部最优 到全局最优)c++代码注意:代码中用到c++11标准中的匿名函数,关于匿名函数详细可以查看...原创 2019-03-18 20:18:08 · 379 阅读 · 0 评论 -
leet_451_sort_characters_by_frequency(按字符出现频率排序)
leet_code:地址问题描述:给定一个字符串,按照字符出现频率降序排序输出。输入输出样例:Input:“tree”Output:“eert”相似题目:leet_347_top_k_frequent(前K个频率最大)解题思路:桶排序c++ 代码实现代码注意:涉及到vector初始化问题涉及到string的append方法使用问题class Solu...原创 2019-03-13 19:10:24 · 166 阅读 · 0 评论 -
leet_406_queue_reconstruction_by_height(按照身高和所给序列要求对序列重建)
leet:地址问题描述:有一打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 现需要按照该整数对(h,k)表示的要求 编写一个算法来重建这个队列以满足该要求。输入输出样例:输入: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0],[7,0...原创 2019-03-21 20:37:24 · 138 阅读 · 0 评论 -
leet_347_top_k_frequent(前K个频率最大)
leetcode:地址问题描述:给定一个非空的数组,输出前K个出现频率最多的数。要求算法的时间复杂度好于O(n lgn)。输入输出样例:Input: nums = [1,1,1,2,2,3], k = 2Output: [1,2]方法一分析:对时间复杂度提出了要求,明显一般的线性操作是达不到的。这里使用的是大顶堆的方式将最大的值进行输出,且每次求解最大值的复杂...原创 2019-03-11 18:54:25 · 228 阅读 · 0 评论 -
Leet_455_assign_cookies(向孩子们分配饼干)
leet地址:链接问题描述:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj &gt;= gi ,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。...原创 2019-03-14 19:15:15 · 214 阅读 · 0 评论 -
leet_75_sort_color(荷兰国旗问题)
leet_code地址:点我问题描述:一个由0,1,2乱序组成的数组,使用o(1)的空间复杂度,且时间复杂度在0(n)范围内(只遍历一遍数组),将数组进行排序。因为该排序问题属于有序的三分类问题,类似于荷兰国旗(红白蓝)撕成很多条进行排序问题,所以也称为荷兰国旗问题。分析:一般对时间复杂度和空间复杂度要求较高的(如排序)相关问题都要考虑使用双指针,甚至三指针。该问题确...原创 2019-03-06 17:58:57 · 180 阅读 · 0 评论 -
leet_605_can_place_flowers(向空位栽花)
leet_code:链接问题描述:假定你有一个长的花床,该花床有些栽上花了(用1表示),有些位置没有栽上花(用0表示),要求任意两株花直接不能相邻(否则会因为水分不足死掉,解释的好牵强。。)那么问给定n株花能否全部栽到该花床上?输入输出样例:Input1: flowerbed = [1,0,0,0,1], n = 1Output1: TrueInput2: flowerbe...原创 2019-04-11 20:18:12 · 151 阅读 · 0 评论 -
leet_392_is_subsequence(判断序列a是否为序列b的子序列)
leet_code:链接问题描述:判断序列a是否为序列b的子序列输入输出样例:intput :a = “abc”, b = “ahbgdc”output: true(1).c++ 代码实现class Solution{public: bool isSubsequence(string S1, string S2) { int idx = 0, end = S1.s...原创 2019-04-12 17:03:42 · 731 阅读 · 0 评论 -
c++ 刷题
1、百度面试题之给定数字字符串转为相应数字。如“987”转为987。代码:#include<iostream>#include<typeinfo>using namespace std;int str2num(string str){ int temp = 0; for(int i = 0; i < strlen(str.c_str()); i...原创 2018-01-05 10:32:09 · 1178 阅读 · 0 评论 -
leet_95_all_BST(不同的二叉搜索树)
leet:地址分类:分治法(+递归)相似题型:leet_241题目描述:给定一个int型数n,生成由数字1~n生成的所有满足BST(二叉搜索树)的二叉树。note:BST的定义:左子树(如果非空)上所有结点的关键码都小于根结点的关键码。右子树(如果非空)上所有结点的关键码都大于根结点的关键码。左子树和右子树也是二叉搜索树。输入输出样例:分析:该题与leet_...原创 2019-07-31 20:53:06 · 139 阅读 · 0 评论 -
leet_241_different_way_add_parenthese(给表达式加括号并求值)
leet:地址分类:分治法(+递归)题目描述:给定一串由数字和操作符构成的字符串,通过对其加所有可能形式的括号,求出该字符串所有可能的取值。有效的操作符为+、-、x。输入输出样例(注意此样例顺序与leet中的不同,此处的顺序表达了算法的执行顺序(或称算法思路)):Input: “2-1-1”Output: [2, 0]Explanation:(2-(1-1)) = 2(...原创 2019-07-31 15:18:23 · 174 阅读 · 0 评论 -
leet_34_find_element_start_end(查找元素开始、结束位置)
leet:地址分类:二分查找题目:给定一个int类型的升序数组,给定一个目标值target,查找该值在数组中出现的开始、结束位置。如果数组中没有该值,则返回[-1,-1]。输入输出样例:Input: nums = [5,7,7,8,8,10], target = 8Output: [3,4]Input: nums = [5,7,7,8,8,10], target = 6O...原创 2019-07-31 10:55:32 · 122 阅读 · 0 评论 -
leet_540_single_element_in_sorted_array(查找有序数组中单一元素)
leet:地址类型:二分查找题目描述:给定一个有序数组,该数字中除了有一个是单一元素外,其余元素都出现两次,查找只出现一次的元素。输入输出样例:Input: [1,1,2,3,3,4,4,8,8]Output: 2c++实现#include<iostream>#include<vector>using namespace std;cl...原创 2019-07-31 10:50:13 · 104 阅读 · 0 评论 -
leet_744_smallest_letter_greter_than_target(大于给定元素的最小元素)
leet:地址归类:二分查找题目描述:给定一个有序的字符列表(均为小写字母),并给出一个目标字符target ,在列表中找出比target字符大的所有字符中最小的字符。字符列表是回环的,例如target为‘z’,而列表为[‘a’,‘b’],则返回‘a’。输入输出样例:Input:letters = [“c”, “f”, “j”]target = “a”Output: ...原创 2019-07-31 10:43:48 · 143 阅读 · 0 评论 -
leet_461_477_hamming_distance(汉明距离相关)
leet_461(求汉明距离):leet_code:链接问题描述:两个int型数的汉明距离就是它们二进制位中对应位不同值的个数。输入输出样例:Input: x = 1, y = 4Output: 2Explanation:1 (0 0 0 1)4 (0 1 0 0)↑ ↑代码说明:需要指出并记住的是:一个n与n-1按位与,相当于消除n对应二进制中最右边的1。...原创 2019-04-25 18:27:06 · 235 阅读 · 0 评论 -
leet_53_maximum_subarray(求和最大的子串)
leet_code:链接问题描述:给定一个数组nums,查找其邻接子数组(子数组元素最少为1个)中元素和最大的子数组。输入输出样例:Input: [-2,1,-3,4,-1,2,1,-5,4],Output: 6Explanation: [4,-1,2,1] has the largest sum = 6.思路:典型的(DP)动态规划问题。将问题划分为重叠的子问题,求解和保存各...原创 2019-04-18 20:41:42 · 176 阅读 · 0 评论 -
leet_122_best_time_buy_and_sell(股票收益最大化2)
leet_code:链接问题描述:有一个数组,第i个元素代表第i天的股票价格,设计一个算法计算该股票收益的最大值,可以尽可能多的进行交易,但你必须没掉一只股票后才可以买另一只股票。输入输出样例:Input1: [7,1,5,3,6,4]Output1: 7Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = ...原创 2019-04-13 11:01:17 · 342 阅读 · 0 评论 -
leet_136_single_number(一串数字中的只出现一次的数字)
leet_code:链接题目说明:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。复杂度要求:算法应该具有线性时间复杂度o(n)不使用额外空间来实现o(1)技巧性:使用异或进行位运算c++ 代码实现#include<iostream>using namespace std;#include<vect...原创 2019-01-17 19:50:58 · 147 阅读 · 0 评论 -
leet_141_list_has_circle(链表是否存在环)
leetcode地址:链接问题描述:给定一个链表(单向),判断是否存在环。问题分析:此问题可以有两种解决方案:方案一:在定义链表结点结构时定义flag成员,初始flag置0,遍历过则置1。这样就可以通过每遍历链表每一个结点时判断flag是否为1,判断是否存在环。但该方法需要额外定义一个数据成员,并不最优。方案二:使用双指针。两个指针初始指向链表头,但指针2每次移动两个结点,指针1每次向...原创 2019-01-02 21:22:47 · 165 阅读 · 0 评论 -
几大经典的排序算法
插入排序注意:主要注意插入时从后面开始依次向后移动元素 ,否则元素会被覆盖c++代码:int* insert_sort(int data[], int length){ for (int i = 0; i &amp;amp;lt; length; i++) { for (int j = 0; j &amp;amp;lt; i; j++) { if (data[j] &amp;amp;gt; data[i])...原创 2019-01-11 11:43:39 · 232 阅读 · 0 评论 -
leet_26_Remove_Duplicates_from_Sorted_Array
Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra space for another array, you must do this by modifying...原创 2018-05-03 10:52:30 · 275 阅读 · 0 评论 -
leet_20_Valid_Parentheses.py
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.An input string is valid if:Open brackets must be closed by the same type of brack...原创 2018-04-18 17:35:26 · 157 阅读 · 0 评论 -
leet_14_Longest_Common_Prefix
Write a function to find the longest common prefix string amongst an array of strings.def find_common(arr): common = "" min_len = 2**30 for i in arr: min_len = len(i) if len(i) <...原创 2018-04-11 20:21:00 · 124 阅读 · 0 评论 -
leet_1_Two_Sum.py
Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same el...原创 2018-03-29 11:00:20 · 140 阅读 · 0 评论 -
leet_7_reverse_integer
Given a 32-bit signed integer, reverse digits of an integer.Example 1:Input: 123Output: 321def reverse_int(input_num): new_value = "" temp = 0 for i in reversed(input_num): if i ...原创 2018-04-04 15:15:54 · 136 阅读 · 0 评论 -
leet_13_Roman to Integer
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.罗马数字规则简明1. 罗马单个数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)2.一个罗马数字重复几次,就表示这个数的几倍。但同一数码...原创 2018-04-10 18:00:53 · 124 阅读 · 0 评论 -
leet_9_palindrome_number
描述:Determine whether an integer is a palindrome. Do this without extra space.# @param x : input integer number# @return : a booleandef palindrome(x): if x < 0: return False ranger...原创 2018-04-08 10:14:00 · 128 阅读 · 0 评论