以前刚开始学习树状数组的时候很迷,不知道为啥会出现一个这么抽象的玩意儿,也仅仅是将树状数组怎么使用给背下来了。 在刚开始学了树状数组之后并没有怎么使用,差不多能用树状数组解决的问题都用线段树解决了。 后来看了《挑战程序设计》里面关于树状数组的推导之后才对于树状数组有了一个稍微深刻一些的认识,还是要感
回文字符串:一个字符串,不论是从左往右,还是从右往左,字符的顺序都是一样的(如abba,abcba等) 判断回文字符串比较简单,即用两个变量left,right模仿指针(一个指向第一个字符,一个指向最后一个字符), 每比对成功一次,left向右移动一位,right向左移动一位,如
0-1 背包问题是动态规划中一个典型的问题。 问题描述 给定n种物品和一个背包,物品 i 价值 wi 和重量 vi 已知,确定装入背包的物品方案,使得包内物品总价值最大。 算法过程 设n个物品重量存储在w[n]中,价值存储在数组v[n]中,背包容量位C,数组V
算法的五大特性 : 1. 输入, 0 个或多个 2. 输入 1 个或多个 3. 有穷性 4. 确定性 5. 可行性 如果一个算法执行效率(步骤) 标记成 T(n) = n^3 * 2  ,那么这个2 可以看作一个常数 k ,就可以写成 T(n) = n^3 * k  可以看出,如果改变常数k的值,并
  概要 前面分别介绍了AVL树"C语言版本"和"C++版本",本章介绍AVL树的Java实现版本,它的算法与C语言和C++版本一样。内容包括:1. AVL树的介绍2. AVL树的Java实现3. AVL树的Java测试程序 转载请注明出处:http://www.cnb
    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。本文就对SVD的原理做一个总结,并讨论在在PCA降维算法中是如何运用
最近在学习推荐系统(Recommender System),跟大部分人一样,我也是从《推荐系统实践》学起,同时也想跟学机器学习模型时一样使用几个开源的python库玩玩。于是找到了surprise,挺新的,代码没有sklearn那么臃肿,我能看的下去,于是就开始了自己不断的挖坑。 这篇文章介绍基于S
缘起 哈喽大家周四好,时间是过的真快,这几天一直忙着在公司的项目,然后带带新人,眼看这周要过去了,还是要抽出时间学习学习,这些天看到群里的小伙伴也都在忙着新学习,还是很开心的,至少当时的初衷已经达到了,一起学习一起进步嘛,哪怕是对现在或者是对以后的工作有一丢丢的帮助,也是不枉此时的努力,哈
缘起 哈喽大家好哟,今天又到了老张的周二四放送时间了,当然中间还有不定期的更新(因为个人看papi酱看多了),这个主要是针对小伙伴提出的问题和优秀解决方案而写的,经过上周两篇DDD领域驱动设计的试水,我发现一个问题,这个DDD的水是真的深啊~或者来说就是这个思想的转变是不舒服的,好多小伙伴
1、贝叶斯定理 贝叶斯条件概率公式的核心思想是利用容易知道的条件概率来推导出感兴趣的条件概率,公式如下: P(B|A)=P(A|B)P(B)/P(A) 想要知道A发生后发生B的概率,可以用B发生后发生A的概率乘以B发生的概率再除A发生的概率。&
C# 1 // -------------------------------------------------------------------------------------------------------------------- 2 // <copyright com
Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他发明了一个新游戏:
  昨天看网易公开课中可汗学院的视频实现排序,就想着写一下排序,暑假上课也没时间弄其他的, 乘着午休来码一码,积累自己的代码笔记。 插入排序是指有一个有序的列表,往这个列表里插入一个数,插入后列表依旧有序 它的时间复杂度平均为O(n^2) 不适合数据量特别大的 数据量很小是个不错的选择 1 #插
一、Lock: C#中关键字lock(VB.NET中SyncLock,等同于try+finally的Monitor.Enter……Monitor.Exit)。原理是“每次线程进入后锁住当前所有的内存区块等相关区域,由该线程自行处理完毕全部的线程后自动释放”,接着其余线程抢先进入。

推荐文章