由于对于二分法一直都不是很熟悉,这里就用C++中的lower_bound和upper_bound练练手。这里用python实现
lower_bound和upper_bound本质上用的就是二分法,lower_bound查找有序数组的第一个小于等于目标数的,upper_bound查找有序数组第一个大于
排序(sorting)是算法家族里比较重要也比较基础的一类,内容也是五花八门了:
1、有“基于比较”的,也有“不基于比较”的;
2、*有迭代的(iterative)也有递归的(recursive);
3、有利用分治法(divide and conquer)思路解决的;(除了显而易见的“二路归并”算法
这是悦乐书的第186次更新,第188篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第45题(顺位题号是191)。编写一个带无符号整数的函数,并返回它所具有的“1”位数。例如:
输入:11
输出:3
说明:整数11具有二进制表示0000000000000000000000
13、Roman to Integer
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.
Symbol Value
I 1
V
这是LeetCode里的第54道题。
题目要求:
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。
示例 1:
输入:
[
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ]
]
输出: [1,2,3,6,9,
1、Two Sum
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 wou
先贴代码,开坑待填
Tarjan算法:
强连通分量(边双联通分量):(堆栈存点)
1 int head[maxn];
2 struct edge
3 {
4 int to,nxt,from;
基础:查找的基本概念
查找表:由同一类数据元素构成的集合。(线性表、数表、散列表)
关键字:是数据元素中某个数据项的值,用它可以表示一个数据元素。(主关键字:唯一地标识;次关键字:不唯一地标识)
查找:根据制定的某个值,在查找表中确定一个其关键字等于给定的这个值的数据元素
动态/静态查找:查表的同时
这是悦乐书的第185次更新,第187篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第44题(顺位题号是190)。给定32位无符号整数,求它的反转位。例如:
输入:43261596
输出:964176192
说明:43261596以二进制表示为00000010100101
===注:此文由本人结合网上资源整理总结而来,仅代表个人的学习与理解,如有错漏,欢迎指正!===
# 1. 数据结构
## 1.1 数据结构是什么?
数据结构,直白地理解,就是研究数据的逻辑关系与存储方式的一门学科。
可以简单的分为:数据的逻辑结构(逻辑关系)和数据的存储结构(物理结构)。
欢迎访问我的个人站点,老廖的个人博客。
前言
计算机的数值编码和运算应该是本科一年级就会学习的基础知识。从软件开发这个角度来说,很多时候这些知识没有在开发过程中得到有效的利用和实践。
不巧,最近在做的一个项目,常常需要从补码的角度考虑数值表示和相关关系。因此,也就趁此机会简单的写一写。
数值
1、在O(1)时间删除链表节点
题目描述:给定链表的头指针和一个节点指针,在O(1)时间删除该节点。
思路分析:用下一个节点的数据覆盖要删除的节点,然后直接删除待删除节点的下一个节点就好了。(狸猫换太子)
如果节点是尾节点时就行不通
void deleteRandomnode(Node *cur)
#include<iostream>
using namespace std;
typedef char ElemType;
typedef struct DNode
{
ElemType data;
这是悦乐书的第184次更新,第186篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第43题(顺位题号是189)。给定一个数组,将数组向右旋转k步,其中k为非负数。例如:
输入:[1,2,3,4,5,6,7],k = 3
输出:[5,6,7,1,2,3,4]
说明:
向右
打了ks好久都没有更新
诶,自己的粗心真的是没救了,A题大数据都能错
A
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cl
#include<iostream>
using namespace std;
#include<malloc.h>
#define MAX_VERTEX_NUM 20
#define VerTexType ch
#include<iostream>
using namespace std;
#include<malloc.h>
typedef char ElemType;
typedef struct DNode
{
一直对二分法比较讨厌,今天做到了leetcoede第四题被难到了,做了好久才AC,这里写个博客来记录一下。
首先二分法的关键是找到上界和下界。同时也要注意边界条件。先来看看普通的暴力方法
class Solution {
public:
double findMedianSortedArr
分析
写bash,不太会啊……
难度 中
来源
https://leetcode.com/problems/word-frequency/
题目
Write a bash script to calculate the frequency of each word in a text file wo
这是悦乐书的第183次更新,第185篇原创
01 看题和准备
今天介绍的是LeetCode算法题中Easy级别的第42题(顺位题号是172)。给定一个整数n,返回n!中的尾随零数。例如:
输入:3
输出:0
说明:3! = 6,没有尾随零。
输入:5
输出:1
说明:5! = 120,一个尾随零。