1. 17题
Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.
给你这么一堆数字与字母的对应关系,然后给你一段数字组成的字符串,求可能的所有的字母字符串。
Input: Digit string "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
input:string
output:vector
第一反应是利用递归,先算n-1长度的数字的转义+最后一位转义,但是写着写着就懵逼了,因为没办法控制返回值,而且需要全局变量控制vector的长度,最后没有用递归也做出来了。看了一下讨论区的答案,感觉有一篇递归做得很好,拿来学习一下。
class Solution {
public:
vector letterCombinations(string digits)
{
vector res;
if(digits.size()==0) return res;
string local;
vector> table(2,vector());
table.push_back(vector{'a','b','c'}); // index 2
table.push_back(vector{'d','e','f'}); // 3
table.push_back(vector{'g','h','i'});
table.push_back(vector{'j','k','l'}); // 5
table.push_back(vector{'m','n','o'});
table.push_back(vector{'p','q','r','s'}); // 7
table.push_back(vector{'t','u','v'});
table.push_back(vector{'w','x','y','z'}); // 9
backtracking(table,res,local,0,digits);
return res;
}
void backtracking(const vector>& table, vector& res, string& local, int index, const string& digits) {
if(index==digits.size())
res.push_back(local);
else
for(int i=0;i
全局变量基本以参数的形式进行传递,通过在递归中加入循环使vector的长度以乘法的速度增长。
string &local local.push_back()和local.pop()控制可变字符串的长度,作为参数继续传递。
==============================================
==============================================
2. 中序遍历的树
给你n个数1234......n,这是一颗二叉树中序遍历的结果,让你求这些树是什么
For example, Given n = 3, your program should return all 5 unique BST's shown below.
1 3 3 2 1
\ / / / \ \
3 2 1 1 3 2
/ / \ \
2 1 2 3
input:n
output:vector res
#include
#include
#include
#include
using namespace std;
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class Solution {
public:
TreeNode *clone(TreeNode* s)
{
if (s == nullptr)
return nullptr;
TreeNode *c = new TreeNode(s->val);
c->left = clone(s->left);
c->right = clone(s->right);
return c;
}
vector generateTrees(int n) {
vector res;
if (n == 0) return res;
if (n == 1)
{
res.push_back(new TreeNode(1));
return res;
}
Recursive(res, n - 1, new TreeNode(n));
return res;
}
void Recursive(vector &res,int n,TreeNode* local)
{
if (n == 1)
{
TreeNode *last = new TreeNode(1);
TreeNode *tree_n = clone(local);
TreeNode *local_l = tree_n;
while (local_l->left != nullptr)
{
//进行操作的树为tree_n local_l指向的是tree_n的节点 记录当前local_l的状态
//如果存在左子树local_lt则 local_l-左->lat lat-右->local_lt 对tree_n状态进行更改之后clone出新树进行保存
//local_l-左->local_lt 相当于把tree_n更新回来了。
TreeNode* local_lt = local_l->left;
TreeNode *lat = new TreeNode(n);
local_l->left = lat;
lat->right = local_lt;
TreeNode* restore = clone(tree_n);
res.push_back(restore);
local_l->left = local_lt;
local_l = local_l->left;
}
local_l->left = last;
res.push_back(tree_n);
TreeNode *tree_n_2 = clone(local);
TreeNode *last_2 = new TreeNode(1);
last_2->right = tree_n_2;
res.push_back(last_2);
}
else
{
TreeNode *last = new TreeNode(n);
TreeNode *tree_n = clone(local);
TreeNode *local_l = tree_n;
while (local_l->left != nullptr)
{
TreeNode* local_lt = local_l->left;
TreeNode *lat = new TreeNode(n);
local_l->left = lat;
lat->right = local_lt;
TreeNode* restore = clone(tree_n);
Recursive(res, n - 1, restore);
local_l->left = local_lt;
local_l = local_l->left;
}
local_l->left = last;
Recursive(res, n - 1, tree_n);
TreeNode *tree_n_2 = clone(local);
TreeNode *last_2 = new TreeNode(n);
last_2->right = tree_n_2;
Recursive(res, n - 1, last_2);
}
}
vector inorderTraversal(TreeNode* root) {
vector res;
backtrace(root, res);
return res;
}
void backtrace(TreeNode *node, vector& res)
{
if (node == NULL) return;
if (node->left)
{
backtrace(node->left, res);
}
res.push_back(node->val);
backtrace(node->right, res);
}
};
int main()
{
Solution s;
vector m = s.generateTrees(5);
for (int i = 0; i < m.size(); i++)
{
vector prt = s.inorderTraversal(m[i]);
for (int j = 0; j < prt.size(); j++)
{
cout << prt[j] << " ";
}cout << endl;
}
}
这题的难点不在递归,递归的规律很好解释,如果是从大到小插入节点比如:n到1
我们最后要得到一颗n节点的树称为tree(n)
对于tree(n)=tree(n-1)+(1个节点)
那么可以是这(一个节点)的右孩子
或者是 对于tree(n-1)每一个左孩子 tree(左孩子) 把(一个节点)插入到tree(左孩子)的位置,然后把tree(左孩子)加入到(1个节点)的右孩子处
难点主要在于指针的运算,由于在递归过程中tree是会各种变化的,因此引入clone函数使tree每次都相当于一个临时变量,且跟之前的tree仅仅是值相同,地址完全不同。
===================================================
===================================================
3.括号匹配
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
给你一个数n,然后输出所有合理的匹配括号(即:每个左括号都有右括号匹配)
看起来思路挺多的,其实括号匹配的规律是一共有n个左括号n个右括号,从开始到最后数括号的个数,在每一个位置上,左括号的个数>=右括号的个数
可以选择设置一个函数每次插入括号时判断一下,缺点就是每次都需要遍历你已经写过的括号。能不能每次插入时,括号的个数就是已知的呢?那么这里可以引入递归。
class Solution {
public:
vector generateParenthesis(int n) {
vector res;
string s = "(";
Re(1, 1, 0, n, res, s);
return res;
}
void Re(int len, int a, int b, int n,vector& res,string &local)
{
if (len == 2*n-1)
{
local.push_back(')');
res.push_back(local);
local.pop_back();
return;
}
if (a + 1 <= n)
{
local.push_back('(');
Re(len + 1, a + 1, b, n, res, local);
local.pop_back();
}
if (b + 1 <= a)
{
local.push_back(')');
Re(len + 1, a, b + 1, n, res, local);
local.pop_back();
}
}
};
ab分别是左右括号的个数,len为当前字符串长度
开始肯定是要插入一个左括号的,且最后插入的是右括号,判断好即可。
====================================================
====================================================
Given a set of candidate numbers (C ) (without duplicates) and a target number (T ), find all unique combinations in C where the candidate numbers sums to T .
The same repeated number may be chosen from C unlimited number of times.
Note:
All numbers (including target) will be positive integers.
The solution set must not contain duplicate combinations.
For example, given candidate set [2, 3, 6, 7]
and target 7
, A solution set is:
[
[7],
[2, 2, 3]
]
这个题还是想了相当一会儿的,用时大概75min,runtime19ms,大概思路还是递归,首先对原集合排序,
然后对于set(0,n) 表示从第0个数道第n(=size()-1)个数的集合。
比如例子【2,3,6,7】 target=14 根据用没用最后一个数
可以分成 【2,3,6】 target=14 和 【2,3,6,7】 target=7
终止的条件即target=0 或者 对只剩下最后一个元素的判断。
class Solution {
public:
vector> combinationSum(vector& candidates, int target) {
vector> re;
vector res;
sort(candidates.begin(), candidates.end());
bct(candidates,candidates.size() - 1, target, res, re);
return re;
}
void bct(vector nums, int must,int target,vector &res,vector> &re)//nums[must] must in it;
{
if (0 == must)
{
if (target%nums[0] == 0)
{
for (int i = 0; i < target / nums[0]; i++)
res.push_back(nums[0]);
re.push_back(res);
for (int i = 0; i < target / nums[0]; i++)
res.pop_back();
return;
}
else
{
return ;
}
}
else
{
if (target - nums[must] >= 0)
{
res.push_back(nums[must]);
target -= nums[must];
if (target == 0)
{
re.push_back(res);
}
else
{
bct(nums, must, target, res, re);
}
res.pop_back();
bct(nums, must - 1, target+nums[must], res, re);
}
else bct(nums,must-1, target, res, re);
return;
}
}
};
比较麻烦的地方还是pop,push,脑子得清楚。。。想明白递归逻辑之后,这个题就很简单了。
后面还一道差不多的题,我把这个代码改了一点点交上去了,runtime是13ms,用时9min,难度不如上面那题。
Given a collection of candidate numbers (C ) and a target number (T ), find all unique combinations in C where the candidate numbers sums to T .
Each number in C may only be used once in the combination.
Note:
All numbers (including target) will be positive integers.
The solution set must not contain duplicate combinations.
For example, given candidate set [10, 1, 2, 7, 6, 1, 5]
and target 8
, A solution set is:
[
[1, 7],
[1, 2, 5],
[2, 6],
[1, 1, 6]
] 大概意思就是不让重复用数了,其余同上。
class Solution {
public:
vector> combinationSum2(vector& candidates, int target) {
vector> re;
vector res;
sort(candidates.begin(), candidates.end());
bct(candidates,candidates.size() - 1, target, res, re);
return re;
}
void bct(vector nums, int must,int target,vector &res,vector> &re)//nums[must] must in it;
{
if (0 == must)
{
if (target-nums[0] == 0)
{
res.push_back(nums[0]);
re.push_back(res);
res.pop_back();
return;
}
else
{
return ;
}
}
else
{
if (target - nums[must] >= 0)
{
res.push_back(nums[must]);
target -= nums[must];
if (target == 0)
{
re.push_back(res);
}
else
{
bct(nums, must-1, target, res, re);
}
res.pop_back();
while (must>0&&nums[must] == nums[must - 1]) must--;
if (must>0)
bct(nums, must - 1, target+nums[must], res, re);
}
else
{
while (must>0&&nums[must] == nums[must - 1]) must--;
if(must>0)
bct(nums, must - 1, target, res, re);
}
return;
}
}
};
你可能感兴趣的:(note)
Python实现简单的机器学习算法
master_chenchengg
python python 办公效率 python开发 IT
Python实现简单的机器学习算法开篇:初探机器学习的奇妙之旅搭建环境:一切从安装开始必备工具箱第一步:安装Anaconda和JupyterNotebook小贴士:如何配置Python环境变量算法初体验:从零开始的Python机器学习线性回归:让数据说话数据准备:从哪里找数据编码实战:Python实现线性回归模型评估:如何判断模型好坏逻辑回归:从分类开始理论入门:什么是逻辑回归代码实现:使用skl
100天持续行动—Day01
Richard_DL
今天开始站着学习,发现效率大幅提升。把fast.ai的Lesson1的后半部分和Lesson2看完了。由于Keras版本和视频中的不一致,运行notebook时经常出现莫名其妙的错误,导致自己只动手实践了视频中的一小部分内容。为了赶时间,我打算先把与CNN相关的视频过一遍。然后尽快开始做自己的项目。明天继续加油,争取把Lesson3和Lesson4看完。
yolov5>onnx>ncnn>apk
图像处理大大大大大牛啊
opencv实战代码讲解 yolo onnx ncnn 安卓
一.yolov5pt模型转onnx条件:colabnotebookyolov51.安装环境!pipinstallonnx>=1.7.0#forONNXexport!pipinstallcoremltools==4.0#forCoreMLexport!pipinstallonnx-simplifier2.修改common.py在classFocus下面
Day_11
ROC_bird..
算法
面试题16.15.珠玑妙算-力扣(LeetCode)/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*///下标和对应位置的值都一样,answer[0]+1,对应位置的值猜对了,但是下标不对,answer[1]+1int*masterMind(char*solution,char*guess,int*returnSiz
html+css网页设计 旅游网站首页1个页面
html+css+js网页设计
html css 旅游
html+css网页设计旅游网站首页1个页面网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode、Sublime、Webstorm、Text、Notepad++等任意html编辑软件进行运行及修改编辑等操作)。获取源码1,访问该网站https://download.csdn.net/download/qq_42431718/897527112,点击
【Death Note】网吧战神之7天爆肝渗透测试死亡笔记_sqlmap在默认情况下除了使用 char() 函数防止出现单引号
2401_84561374
程序员 笔记
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。需要这份系统化的资料的朋友,可以戳这里获取一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!特殊服务端口2181zookeeper服务未授权访问
ElasticSearch查询超过10000条(1000页)时出现Result window is too large的问题
王月亮17
问题当ES数据量较大,使用分页查询超过10000条(1000页)时,出现如下错误:Cannotexecutejestaction,responsecode:500,error:{"root_cause":[{"type":"query_phase_execution_exception","reason":"Resultwindowistoolarge,from+sizemustbelesstha
sentinel 不显示项目_Sentinel相关问题记录
weixin_39840606
sentinel 不显示项目
SentinelFAQ整理Sentinel承接阿里巴巴近10年双十一大促流量的核心场景,以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。其提供丰富的应用场景支持、完备的监控能力、易用的拓展点。Note:中文文档请见此处。热点问题1、Q:dashboard不展示监控问题如何排查?dashboard是一个单独启动的控制台,引入sentinel的应用是一个客户端。它们各自有
在服务器计算节点中使用 jupyter Lab
ranshan567
程序人生
JupyterLab是一个基于网页的交互式开发环境,用于科学计算、数据分析和机器学.jupyterlab是jupyternotebook的下一代产品,集成了更多功能,使用起来更方便.在进行数据分析及可视化时,个人电脑不能满足大数据的分析需求,就需要用到高性能计算机集群资源,然而计算机集群的计算节点往往没有联网功能,所以在计算机集群中使用jupyterLab需要进行一些配置。具体的步骤如下:
【拖拽】自定义拖拽图标
风露_
一、知识点设置被拖拽的元素draggable为true(HTML5新特性)关键方法:voiddataTransfer.setDragImage(img,xOffset,yOffset);注意点:Note:Ifthe[Element]isanexisting[HTMLElement],itneedstobevisibleintheviewportinordertobeshownasadragfeed
Python 初学者入门必知: Anaconda是什么?有什么作用?怎么使用?
懒大王爱吃狼
Python基础 python 开发语言 python基础 python学习 anaconda anaconda安装 python教程
初学者在学习Python时,经常看到的一个名字是Anaconda。究竟什么是Anaconda,为什么它如此受欢迎?在这篇文章中,我们将探讨Anaconda,了解Anaconda的从安装到使用的。Anaconda是一个免费开源的Python和R编程发行版,包含上千个适用于数据科学和机器学习的包。同时,配备了Spyder和Jupyternotebook等工具,初学者可以使用它们来学习Python,使用
哈希表 383.赎金信
柴...
散列表 算法 leetcode
统计两个字符串中,每个字母出现的次数,最后统计,当数组所有位置都>0时,就能确定。classSolution{publicbooleancanConstruct(StringransomNote,Stringmagazine){int[]record=newint[26];if(ransomNote.length()>magazine.length()){returnfalse;}for(inti
从零开始!Jupyter Notebook的安装教程
yunquantong
jupyter ide python
以下是从零开始安装JupyterNotebook的教程,适用于Windows、macOS和Linux系统。1.安装PythonJupyterNotebook需要Python环境。你可以从Python官方网站下载并安装Python。Windows用户:运行安装程序时,请确保勾选“AddPythontoPATH”选项。macOS用户:使用安装程序或通过Homebrew安装(brewinstallpyt
从零开始!Jupyter Notebook的安装教程
109702008
人工智能 编程 # python jupyter 人工智能
GPT-4o(OpenAI)安装JupyterNotebook是一个相对简单的过程,特别是在大多数现代操作系统(如Windows、macOS和Linux)上。以下是详细的步骤指南,从安装Python开始,到JupyterNotebook的使用。步骤1:安装PythonJupyterNotebook需要Python环境。你可以从[Python官网](https://www.python.org/do
深度学习工具:用Jupyter Notebook远程连接服务器
S.GJ
服务器 jupyter python
1.安装jupyter相关库(服务器端)pipinstalljupyterlabjupyter_contrib.nbextensions2.设置jupyter密码(服务器端)jupyter-notebookpassword3.开启jupyternotebook服务(服务器端)mkdirworkspacejupyter-notebook--no-browser--ip=0.0.0.0./worksp
LeetCode_sql_day04(1280. 学生们参加各科测试的次数)
Darling_00
sql leetcode sql 数据库
描述:1280.学生们参加各科测试的次数查询出每个学生参加每一门科目测试的次数,结果按student_id和subject_name排序。查询结构格式如下所示。数据准备:CreatetableIfNotExistsStudents(student_idint,student_namevarchar(20))CreatetableIfNotExistsSubjects(subject_namevar
MySQL的DDL、DML、DQL
鱼灯几许
mysql 数据库
DDLDDL:数据定义语言查询所有数据库:showdatabases;查询当前数据库:showdatabases();使用数据库:use数据库名;创建数据库:createdatabase[ifnotexists]数据库名;删除数据库:dropdatabase[ifexists]数据库名;创建表:createtable表名(字段1字段1类型[约束][comment字段1注释],字段2字段2类型[约束
[已解决]Notepad++ 无法安装HexEditor
胡释薇
编辑器
宿主版本:8.4.6插件版本:0.9.12正常在插件管理中无法安装成功.科学上网也不好用浑身难受...看了其他小伙伴的解决办法嗯.....并不好用!(可能和他们的版本不对应,未能适用)[当前版本的解决办法]插件>打开插件文件夹...在该目录下手动创建HexEditor的文件夹使用老版本的插件0.9.9解压丢进去打开宿主设置>导入>导入插件...选择刚刚导入的HexEditor.dll文件.导入后点
力扣SQL仅数据库(570-579)
朵&朵
数据库 leetcode sql
570.至少有5名直接下属的经理需求:编写一个解决方案,找出至少有五个直接下属的经理数据准备:CreatetableIfNotExistsEmployee(idint,namevarchar(255),departmentvarchar(255),managerIdint)TruncatetableEmployeeinsertintoEmployee(id,name,department)valu
【数据结构】快速排序与归并排序的非递归实现
盐酥鸡--
数据结构 数据结构 算法
个人主页:Yanni.—数据结构:DataStructure.C语言笔记:CLanguageNotesOJ题分享:TopicSharing目录前言:非递归基础思想快速排序非递归思路快速排序非递归实现归并排序的非递归思路归并排序的非递归实现前言:在之前学习了快速排序和归并排序,但算法就是用递归实现的,在企业的面试中,很多企业不会问你快速排序和归并排序递归算法的思想,而是非递归实现这两个排序,今天为大
苹果不是没有创新只不过不做PPT机型罢了?
非鱼花酱
作为一年出货量两亿多而每年又只发布两三款机型的苹果来说,硬件上的创新肯定是需要克制的,如果过于激进良品率解决不了或者产品扑街那么影响无疑就是摧毁性的,因为品牌口碑这个东西一款机型的失败可能就会滑倒谷底了,三星Note7就是这个道理,去年的苹果基带门也是如此,好在信号问题还不像三星那么致命,所以现实就是大厂的旗舰机必须稳扎稳打,这也就是为什么三星现在的充电功率还停留在18W的原因…对于5G以及信号问
【早安心语】
壹典心理咨询
【2021-10-22】早安春夏秋冬Lifeisnoteasy,thekeytoseehowyoulive,itissaidthateveryone'slifeshouldshedthenumberoftearsisnotthesame,somepeopleathousandtears,somepeople10,000tears,somepeoplemore,thesetearscombinedh
Jupyter notebook安装的问题
大梦一场三十一
使用anaconda去安装会比较简单,而后在anaconda打开Jupyternotebookimage.png遇到的问题:(1)在anaconda打开Jupyternotebook,无法出现在浏览器上,http://localhost:8888/tree,无法使用。可以尝试使用http://127.0.0.1:8888/tree。原因是hosts中没有定义127.0.0.1为localhost,
note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed
哎呀——哪是啥
openmmlab pip
确保环境配置正确:检查Python版本是否与mmcv兼容(通常情况下,Python3.6-3.9是支持的)。确认安装了合适的PyTorch版本,mmcv常常需要与PyTorch版本紧密配合。更新pip,setuptools,和wheel:在运行安装命令之前,确保这些库是最新的:plaintextpipinstall--upgradepipsetuptoolswheel尝试使用预编译的轮文件:可以尝
【Python】已解决:note: This error originates from a subprocess,and is likely not a problem with pip
屿小夏
python pip 开发语言
文章目录一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项已解决:note:Thiserrororiginatesfromasubprocess,andislikelynotaproblemwithpip一、分析问题背景在Python项目的开发过程中,我们经常需要使用pip安装各种第三方库。有时候,当我们尝试安装某个库时,可能会遇到如下报错信息:note:Thiserr
linux查看jupyter运行,在Linux服务器上运行Jupyter notebook server教程
天启大烁哥
在Linux服务器上运行Jupyternotebookserver教程很多deeplearning教程都推荐在jupyternotebook运行python代码,方便及时交互。但只在本地运行没有GPU环境,虽然googlecolab是个好办法,但发现保存模型后在云端找不到模型文件,且需要合理上网才能访问。于是想给实验室的服务器配置jupyternotebook,供本机远程访问。踩了不少坑,码一下教
BUUCTF 2021-10-4 Pwn
Ch1lkat
BUUCTF Pwn linux pwn
文章目录保持手感echo分析EXPPwnme1分析EXPwdb_2018_1st_babyheap分析EXPFSOPhouseoforange_hitcon_2016分析前置知识House_of_orangeFSOPEXPzctf_2016_note3分析EXPgyctf_2020_document分析EXP动态调试复现护网杯_gettingstart分析EXPpicoctf_2018_buffe
标题: 阳光的ScalersTalk第四轮《新概念》朗读持续力训练 Day40 20181116
阳光18
Lesson40FoodandtalkLastweekatadinner-party,thehostessaskedmetositnexttoMrs.Rumbold.Mrs.Rumboldwasalarge,unsmilingladyinatightblackdress.ShedidnotevenlookupwhenItookmyseatbesideher.Hereyeswerefixedonhe
notepad++软件介绍(含安装包)
LQS2020
notepad++
Notepad++是一款开源的文本编辑器,主要用于编程和代码编辑。它是一个功能强大的替代品,常常被用来替代Windows系统自带的记事本。Notepad++win系统免费下载地址以下是Notepad++的一些主要特点和功能:多语言支持:Notepad++支持多种编程语言,包括Python、JavaScript、HTML、CSS、C++、Java等。它能够根据文件类型自动高亮显示语法,使代码更加易读
一款可以替代Notepad++的免费高级文本编辑器
ITdgr
notepad++
Kate文本编辑器是一款跨平台的免费高级文本编辑器,具有丰富的功能和特性。它支持标签页、代码高亮、多文件查找、垂直/水平视图、侧边栏、颜色主题等特性,类似于Notepad++。它以其多功能性和易用性广受好评。Kate支持多文档界面(MDI)和标签页,允许用户同时编辑和查看多个文件,无论是单独在一个窗口中还是在分割视图中。相较于其他文本编辑器,Kate提供了更为全面的功能和更好的跨平台支持。它的多文
linux系统服务器下jsp传参数乱码
3213213333332132
java jsp linux windows xml
在一次解决乱码问题中, 发现jsp在windows下用js原生的方法进行编码没有问题,但是到了linux下就有问题, escape,encodeURI,encodeURIComponent等都解决不了问题
但是我想了下既然原生的方法不行,我用el标签的方式对中文参数进行加密解密总该可以吧。于是用了java的java.net.URLDecoder,结果还是乱码,最后在绝望之际,用了下面的方法解决了
Spring 注解区别以及应用
BlueSkator
spring
1. @Autowired
@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在不止一个UserDao类型的bean,或者不存在UserDao类型的bean,会抛出 BeanCreationException异常,这时可以通过在该属性上再加一个@Qualifier注解来声明唯一的id解决问题。
2. @Qualifier
当spring中存在至少一个匹
printf和sprintf的应用
dcj3sjt126com
PHP sprintf printf
<?php
printf('b: %b <br>c: %c <br>d: %d <bf>f: %f', 80,80, 80, 80);
echo '<br />';
printf('%0.2f <br>%+d <br>%0.2f <br>', 8, 8, 1235.456);
printf('th
config.getInitParameter
171815164
parameter
web.xml
<servlet>
<servlet-name>servlet1</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>str</param-name>
Ant标签详解--基础操作
g21121
ant
Ant的一些核心概念:
build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。 project:每个构建文
[简单]代码片段_数据合并
53873039oycg
代码
合并规则:删除家长phone为空的记录,若一个家长对应多个孩子,保留一条家长记录,家长id修改为phone,对应关系也要修改。
代码如下:
java 通信技术
云端月影
Java 远程通信技术
在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是些什么关系呢,它们背后到底是基于什么原理实现的呢,了解这些是实现分布式服务框架的基础知识,而如果在性能上有高的要求的话,那深入了解这些技术背后的机制就是必须的了,在这篇blog中我们将来
string与StringBuilder 性能差距到底有多大
aijuans
之前也看过一些对string与StringBuilder的性能分析,总感觉这个应该对整体性能不会产生多大的影响,所以就一直没有关注这块!
由于学程序初期最先接触的string拼接,所以就一直没改变过自己的习惯!
今天碰到 java.util.ConcurrentModificationException 异常
antonyup_2006
java 多线程 工作 IBM
今天改bug,其中有个实现是要对map进行循环,然后有删除操作,代码如下:
Iterator<ListItem> iter = ItemMap.keySet.iterator();
while(iter.hasNext()){
ListItem it = iter.next();
//...一些逻辑操作
ItemMap.remove(it);
}
结果运行报Con
PL/SQL的类型和JDBC操作数据库
百合不是茶
PL/SQL表 标量类型 游标 PL/SQL记录
PL/SQL的标量类型:
字符,数字,时间,布尔,%type五中类型的
--标量:数据库中预定义类型的变量
--定义一个变长字符串
v_ename varchar2(10);
--定义一个小数,范围 -9999.99~9999.99
v_sal number(6,2);
--定义一个小数并给一个初始值为5.4 :=是pl/sql的赋值号
Mockito:一个强大的用于 Java 开发的模拟测试框架实例
bijian1013
mockito 单元测试
Mockito框架:
Mockito是一个基于MIT协议的开源java测试框架。 Mockito区别于其他模拟框架的地方主要是允许开发者在没有建立“预期”时验证被测系统的行为。对于mock对象的一个评价是测试系统的测
精通Oracle10编程SQL(10)处理例外
bijian1013
oracle 数据库 plsql
/*
*处理例外
*/
--例外简介
--处理例外-传递例外
declare
v_ename emp.ename%TYPE;
begin
SELECT ename INTO v_ename FROM emp
where empno=&no;
dbms_output.put_line('雇员名:'||v_ename);
exceptio
【Java】Java执行远程机器上Linux命令
bit1129
linux命令
Java使用ethz通过ssh2执行远程机器Linux上命令,
封装定义Linux机器的环境信息
package com.tom;
import java.io.File;
public class Env {
private String hostaddr; //Linux机器的IP地址
private Integer po
java通信之Socket通信基础
白糖_
java socket 网络协议
正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数据通信。每一个连接的通信端叫做一个Socket。一个完整的Socket通信程序应该包含以下几个步骤:
①创建Socket;
②打开连接到Socket的输入输出流;
④按照一定的协议对Socket进行读写操作;
④关闭Socket。
Socket通信分两部分:服务器端和客户端。服务器端必须优先启动,然后等待soc
angular.bind
boyitech
AngularJS angular.bind AngularJS API bind
angular.bind 描述: 上下文,函数以及参数动态绑定,返回值为绑定之后的函数. 其中args是可选的动态参数,self在fn中使用this调用。 使用方法: angular.bind(se
java-13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class KickOutBadGuys {
/**
* 题目:13个坏人和13个好人站成一圈,数到7就从圈里面踢出一个来,要求把所有坏人都给踢出来,所有好人都留在圈里。请找出初始时坏人站的位置。
* Maybe you can find out
Redis.conf配置文件及相关项说明(自查备用)
Kai_Ge
redis
Redis.conf配置文件及相关项说明
# Redis configuration file example
# Note on units: when memory size is needed, it is possible to specifiy
# it in the usual form of 1k 5GB 4M and so forth:
#
[强人工智能]实现大规模拓扑分析是实现强人工智能的前奏
comsci
人工智能
真不好意思,各位朋友...博客再次更新...
节点数量太少,网络的分析和处理能力肯定不足,在面对机器人控制的需求方面,显得力不从心....
但是,节点数太多,对拓扑数据处理的要求又很高,设计目标也很高,实现起来难度颇大...
记录一些常用的函数
dai_lm
java
public static String convertInputStreamToString(InputStream is) {
StringBuilder result = new StringBuilder();
if (is != null)
try {
InputStreamReader inputReader = new InputStreamRead
Hadoop中小规模集群的并行计算缺陷
datamachine
mapreduce hadoop 并行计算
注:写这篇文章的初衷是因为Hadoop炒得有点太热,很多用户现有数据规模并不适用于Hadoop,但迫于扩容压力和去IOE(Hadoop的廉价扩展的确非常有吸引力)而尝试。尝试永远是件正确的事儿,但有时候不用太突进,可以调优或调需求,发挥现有系统的最大效用为上策。
-----------------------------------------------------------------
小学4年级英语单词背诵第二课
dcj3sjt126com
english word
egg 蛋
twenty 二十
any 任何
well 健康的,好
twelve 十二
farm 农场
every 每一个
back 向后,回
fast 快速的
whose 谁的
much 许多
flower 花
watch 手表
very 非常,很
sport 运动
Chinese 中国的
自己实践了github的webhooks, linux上面的权限需要注意
dcj3sjt126com
github webhook
环境, 阿里云服务器
1. 本地创建项目, push到github服务器上面
2. 生成www用户的密钥
sudo -u www ssh-keygen -t rsa -C "
[email protected] "
3. 将密钥添加到github帐号的SSH_KEYS里面
3. 用www用户执行克隆, 源使
Java冒泡排序
蕃薯耀
冒泡排序 Java冒泡排序 Java排序
冒泡排序
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年6月23日 10:40:14 星期二
http://fanshuyao.iteye.com/
Excle读取数据转换为实体List【基于apache-poi】
hanqunfeng
apache
1.依赖apache-poi
2.支持xls和xlsx
3.支持按属性名称绑定数据值
4.支持从指定行、列开始读取
5.支持同时读取多个sheet
6.具体使用方式参见org.cpframework.utils.excelreader.CP_ExcelReaderUtilTest.java
比如:
Str
3个处于草稿阶段的Javascript API介绍
jackyrong
JavaScript
原文:
http://www.sitepoint.com/3-new-javascript-apis-may-want-follow/?utm_source=html5weekly&utm_medium=email
本文中,介绍3个仍然处于草稿阶段,但应该值得关注的Javascript API.
1) Web Alarm API
&
6个创建Web应用程序的高效PHP框架
lampcy
Web 框架 PHP
以下是创建Web应用程序的PHP框架,有coder bay网站整理推荐:
1. CakePHP
CakePHP是一个PHP快速开发框架,它提供了一个用于开发、维护和部署应用程序的可扩展体系。CakePHP使用了众所周知的设计模式,如MVC和ORM,降低了开发成本,并减少了开发人员写代码的工作量。
2. CodeIgniter
CodeIgniter是一个非常小且功能强大的PHP框架,适合需
评"救市后中国股市新乱象泛起"谣言
nannan408
首先来看百度百家一位易姓作者的新闻:
三个多星期来股市持续暴跌,跌得投资者及上市公司都处于极度的恐慌和焦虑中,都要寻找自保及规避风险的方式。面对股市之危机,政府突然进入市场救市,希望以此来重建市场信心,以此来扭转股市持续暴跌的预期。而政府进入市场后,由于市场运作方式发生了巨大变化,投资者及上市公司为了自保及为了应对这种变化,中国股市新的乱象也自然产生。
首先,中国股市这两天
页面全屏遮罩的实现 方式
Rainbow702
html css 遮罩 mask
之前做了一个页面,在点击了某个按钮之后,要求页面出现一个全屏遮罩,一开始使用了position:absolute来实现的。当时因为画面大小是固定的,不可以resize的,所以,没有发现问题。
最近用了同样的做法做了一个遮罩,但是画面是可以进行resize的,所以就发现了一个问题,当画面被reisze到浏览器出现了滚动条的时候,就发现,用absolute 的做法是有问题的。后来改成fixed定位就
关于angularjs的点滴
tntxia
AngularJS
angular是一个新兴的JS框架,和以往的框架不同的事,Angularjs更注重于js的建模,管理,同时也提供大量的组件帮助用户组建商业化程序,是一种值得研究的JS框架。
Angularjs使我们可以使用MVC的模式来写JS。Angularjs现在由谷歌来维护。
这里我们来简单的探讨一下它的应用。
首先使用Angularjs我
Nutz--->>反复新建ioc容器的后果
xiaoxiao1992428
DAO mvc IOC nutz
问题:
public class DaoZ {
public static Dao dao() { // 每当需要使用dao的时候就取一次
Ioc ioc = new NutIoc(new JsonLoader("dao.js"));
return ioc.get(