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)
MySQL复习题
一.填空题1.关系数据库的标准语言是SQL。2.数据库发展的3个阶段中,数据独立性最高的是阶段数据库系统。3.概念模型中的3种基本联系分别是一对一、一对多和多对多。4.MySQL配置文件的文件名是my.ini或my.cnf。5.在MySQL配置文件中,datadir用于指定数据库文件的保存目录。6.添加IFNOTEXISTS可在创建的数据库已存在时防止程序报错。7.MySQL提供的SHOWCREA
数据中台中的数据科学工作台:Jupyter集成方案
AI大数据智能洞察
大数据与AI人工智能 jupyter 信息可视化 ide ai
数据中台中的数据科学工作台:Jupyter集成方案关键词:数据中台、数据科学工作台、JupyterNotebook、数据科学、机器学习、数据可视化、协作开发摘要:本文深入探讨了在数据中台架构中集成JupyterNotebook作为数据科学工作台的完整解决方案。我们将从数据中台的基本概念出发,详细分析Jupyter在数据科学工作流中的核心作用,介绍多种集成方案和技术实现细节,并通过实际案例展示如何构
Jupyter Notebook:数据科学的“瑞士军刀”
a小胡哦
机器学习基础 人工智能 机器学习
在数据科学的世界里,JupyterNotebook是一个不可或缺的工具,它就像是数据科学家手中的“瑞士军刀”,功能强大且灵活多变。今天,就让我们一起深入了解这个神奇的工具。一、JupyterNotebook是什么?JupyterNotebook是一个开源的Web应用程序,它允许你创建和共享包含实时代码、方程、可视化和解释性文本的文档。它支持多种编程语言,其中Python是最常用的语言之一。Jupy
在Ubuntu24.04搭建VLLM, SGLang 和 LangChain环境
小熊冲!冲!冲!
AI ubuntu langchain ai 毕业设计
在Ubuntu24.04搭建VLLM,SGLang和LangChain环境[!NOTE]概述整片文章是笔者的回忆(白天忙碌了一天,晚上进行的总结),所以有些地方的描述可能有误差,本文更多的是大体方向问题,细节步骤不是本文的重点,见谅!!!如何安装Ubuntu24.04制作启动U盘,作者使用的是rufus.exe工具下载Ubuntu24.04的ISO镜像使用rufus.exe工具刷入Ubuntu22
【日更挑战】2023-04-30比赛日NOTES(季后赛)
扁圆柱体
日更挑战当前排名:第741天,第585名,排名较昨日前进1名。比赛日,官网给出每场比赛的Notes(极个别场次没有),翻译如下TLDR:枫叶上一次在季后赛晋级,还是2004年东部1/4决赛对阵参议员;游骑兵前锋Kreider在输球就回家的比赛中打入16球,追平MarkMessier成为联盟历史第一;Bouchard在强打中得到8分,这是联盟历史上后卫单系列赛的强打最高得分(并列)。MapleLea
webpack实用教程
前端的爬行之旅
packjson.js终端输入$npminit-y{"name":"2","version":"1.0.0","description":"","main":"webpack.config.js","scripts":{"test":"echo\"Error:notestspecified\"&&exit1",},"keywords":[],"author":"","license":"ISC",
常见的未授权访问如:Redis,MongoDb,Memcached,Jenkins,Jupyter NoteBook,Elasticsearch,Kibana等二十四个靶场复现
终焉暴龙王
安全 网络 web安全
前言这这篇文章中我会记录24种常见的未授权访问漏洞的靶场复现,如果有错误,欢迎大家指正。在本文中,漏洞复现的靶场完全是靠自己搭建的vulhub-master以及一系列的靶场以及fofa搜索,如果之前没有用过vulhub-master靶场,请先搭建好vulhub-master靶场并且安装docker和docker-compose。另外,其中一些涉及到敏感信息的漏洞复现我就不截图了,大家切记要树立好法
熟悉亚马逊邮件(第八天)
七qi_
电商运营分析 学习方法
AmazonshipmentID(FBA18XBLW5JL)hasbeenreceivedatitsfinalAmazonfulfillmentcenterdestinationandhasbeenfullyprocessedintoinventory.Yourunitsarenowfulfillable.DearSellerWehavedeactivatedthelistingsnotedin
熟悉亚马逊邮件(第九天)
七qi_
电商运营分析 学习方法
HellofromAmazonSellingPartnerSupport,Weunderstandyourrequestare-measurementandreimbursementforFBAexcessesfeePleasenotethatwearestillworkingwithourrelevantteamtoreacharesolutiononyourcase.Whileweareuna
LeetCode #535 Encode and Decode TinyURL TinyURL 的加密与解密
air_melt
535EncodeandDecodeTinyURLTinyURL的加密与解密Description:Note:ThisisacompanionproblemtotheSystemDesignproblem:DesignTinyURL.TinyURLisaURLshorteningservicewhereyouenteraURLsuchashttps://leetcode.com/problems/
果子酱的scalerstalk第六轮新概念朗读持续力训练day102 20210121
S果子酱
练习材料:新概念3l3-(2)任务配置:L0+L1+L4知识笔记:字母组合:nnonefindnonamenosenotenothingnnwinnerfunnydinnersunnyknk不发音kneeknifeknowgng不发音signdesignforeigncampaign短语:remains名词,遗址,遗迹B.C.beforeChrist公元前A.D.annodomini公元happe
【Note】《Linux 内核深度解析:基于 ARM64 架构的 Linux 4.x 内核》第四章:中断、异常与系统调用
《Linux内核深度解析:基于ARM64架构的Linux4.x内核》第四章:中断、异常与系统调用中断与异常机制是连接硬件与内核逻辑的重要纽带,系统调用则是用户空间访问内核服务的主要入口。本章围绕ARM64架构上的这些机制,全面分析其实现原理、初始化流程与运行时行为。一、ARM64异常模型概览1.1异常级别(ExceptionLevels)ARM64架构定义了四个异常级别(EL):异常级别描述用途E
mib2c --生成notification
notification也就是trap相关的代码比较简单也就是前面我们最后一步的时候输入y最终生成的代码/**Note:thisfileoriginallyauto-generatedbymib2c*usingmib2c.notify.conf*/#include#include#include#include"testModule.h"externconstoidsnmptrap_oid[];e
2018.08.19
Mr_Oldman
It'sMonday.Chapternineteen:INDIANJANBOREEWinterendedatlast.Therewasasofternoteinthesoundofthewind,andthebittercoldwasgone.OnedayPasaidhehadseenaflockofwildgeeseflyingnorth.ItwastimetotakehisfurstoInde
@007不写就出局‖1.21作业雨点评
江南陈墨
楼上的战友【作者】@邓倩云|007-15186|南宁 【链接】https://www.jianshu.com/p/d6b9d0eb0783?utm_campaign=haruki&utm_content=note&utm_medium=reader_share&utm_source=weixin倩云老师,您好!变化才是美丽的基础,彩虹、云海、冰瀑,转瞬即逝。也许就是短暂,才分外珍惜。楼下的战友【作
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | NotesApp(便签笔记组件)
sunbyte
TailiwindCSS 实战指南 笔记 vue.js 前端 javascript css tailwindcss
我们继续50个小项目挑战!——NotesApp组件仓库地址:https://github.com/SunACong/50-vue-projects项目预览地址:https://50-vue-projects.vercel.app/。使用Vue3的CompositionAPI搭配TailwindCSS和marked库,构建一个支持Markdown渲染的笔记应用。该应用允许用户添加、编辑、删除笔记,并
Redmi K50 手机破冰新低 ,红米手机note10pro优惠券该如何领取?
高省_飞智666600
高省邀请码怎么找?邀请码获得方法及输入位置攻略[多图]Redminote11Pro现在全系立减,618大促的起售价只要1299元,目前能够领取立减400元的优惠券,1299的起售价也是该机发布后的史低价格后置1.08亿像素主摄+800万超广角+200万微距,主摄支持OIS光学防抖。采用与K50电竞版同材料规格的新一代不锈钢VC散热系统,覆盖主板72%区域,如今,正是年中大促的阶段,很多手机品牌都在
创建全景图像的完整指南:Make-Panorama-Image实战教程
色空空色
本文还有配套的精品资源,点击获取简介:在IT领域,全景图像创建技术用于合并多张连续拍摄的照片以获得宽广视角。本教程将介绍使用Python和JupyterNotebook实现全景图像生成的步骤,包括图像对齐、融合、扭曲校正和裁剪调整。通过学习OpenCV、PIL/Pillow和scikit-image等库的使用,你将掌握创建和处理全景图像的技术。1.全景图像生成的步骤与原理全景图像(Panorama
Leetcode力扣 MySQL数据库 1532 最近三笔订单
ziko-1101
Leetcode 数据库 mysql leetcode
1532最近三笔订单SQL架构CreatetableIfNotExistsCustomers_1532(customer_idint,namevarchar(10));CreatetableIfNotExistsOrders_1532(order_idint,order_datedate,customer_idint,costint);TruncatetableCustomers_1532;ins
Leetcode力扣 MySQL数据库 1393 股票的资本损益
ziko-1101
Leetcode 数据库 leetcode mysql
1393股票的资本损益SQL架构CreateTableIfNotExistsStocks_1393(stock_namevarchar(15),operationENUM('Sell','Buy'),operation_dayint,priceint);TruncatetableStocks_1393;insertintoStocks_1393(stock_name,operation,opera
Leetcode力扣 MySQL数据库 1440 计算布尔表达式的值
ziko-1101
Leetcode 数据库 mysql leetcode
1440计算布尔表达式的值SQL架构CreateTableIfNotExistsVariables_1440(namevarchar(3),valueint);CreateTableIfNotExistsExpressions_1440(left_operandvarchar(3),operatorENUM('>','','y');insertintoExpressions_1440(left_o
45. leetcode 504. Base 7
504.Base7Givenaninteger,returnitsbase7stringrepresentation.Example1:Input:100Output:"202"Example2:Input:-7Output:"-10"Note:Theinputwillbeinrangeof[-1e7,1e7].思路:辗转相除法。转载于:https://www.cnblogs.com/vincen
ffmpeg python_ffmpeg-python 学习
Rulin X
ffmpeg python
#增加自动缩进换行defindent(elem,level=0):i="\n"+level*""iflen(elem):ifnotelem.textornotelem.text.strip():elem.text=i+""ifnotelem.tailornotelem.tail.strip():elem.tail=iforeleminelem:indent(elem,level+1)ifnotel
我与魅族的那些事儿
张大少是逗比
我是2015年入的魅族坑,初识魅族是因为同学的魅族mx4,结缘于魅蓝note2,那是当时学生时代的我,用的最能装逼的手机了,是的,mk按压返回桌面,轻触返回上级,真的很爽呀,一用就离不开了,最初留住我的是mk。随着我对手机的使用,Flyme也TM征服我了。图片发自App随后,note3,note5,note6我都入手了,都很喜欢(虽然被黄牛加价几百,也无所谓)。魅族的每一次演唱会,我都准时守在手机
如何移植一个OpenHarmony基线
晚风_落日
harmonyos 鸿蒙
写在前边:分享这篇总结是希望有小伙伴在进行代码移植时,少走一点弯路,有个参考,可以更快的移植代码。一、创建远程代码仓此步骤各项目会有专门的人来处理,不做详细介绍这里我们假设创建的远程仓名为:RK3568_OpenHarmony5.1.0_Backup二、开源仓代码获取以5.1.0-Release为例开源基线:OpenHarmony-v5.1.0-Release:zh-cn/release-note
Jupyter Notebook 黑科技:数据科学家必备 10 个技巧
在数据科学的浩瀚宇宙中,JupyterNotebook宛如一颗璀璨的明星,照亮着数据科学家们前行的道路。它以其强大的交互性、丰富的功能,成为了数据处理、分析与可视化的得力助手。今天,就让我们一同揭开JupyterNotebook的神秘面纱,探寻那些能让数据科学家如虎添翼的10个黑科技技巧。一、魔法命令,开启高效之旅魔法命令堪称JupyterNotebook的一大瑰宝。以%开头的单行魔法命令和以%%
007-8班2组 2018年6月14日作业情况
车美美
1、二组最佳文章《行动是治疗焦虑的最佳解药》姓名:张霞文章标题《行动是治疗焦虑的最佳解药》文章链接https://www.jianshu.com/p/93c01be6e67c?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends&from=groupmessage推荐人:车智美推荐语
MySQL常见命令
Heliotrope_Sun
测试 mysql 数据库
唯有热爱,恒常如新一、连接与登录#本地登录mysql-uroot-p#远程登录mysql-h192.168.1.10-P3306-uuser-p#指定库直接登录mysql-uroot-pdb_name注意:-p后面不能有空格,否则空格也算密码的一部分。二、数据库(database)操作--查看所有库SHOWDATABASES;--创建库并指定字符集CREATEDATABASEIFNOTEXISTS
【C++】note:指针
老王Mr_Onion
c++ 开发语言
宇宙免责声明:部分由ChatGPT编写,如有错误,私信请联系我,谢谢大部分资料来源:OI-wiki(oi-wiki.org)指针的定义在程序中,我们的数据都有其存储的地址。在程序每次的实际运行过程中,变量在物理内存中的存储位置不尽相同。地址也是数据。存放地址所用的变量类型有一个特殊的名字,叫做「指针变量」,有时也简称做「指针」pointer。指针的声明与使用C/C++中,指针变量的类型为类型名后加
Hive修改表备注, 字段备注, 字段类型
GYBE
修改表的备注ALTERTABLE数据库名.表名SETTBLPROPERTIES('comment'='新的表备注');修改字段备注,字段类型ALTERTABLE数据库名.表名CHANGECOLUMN字段名新的字段名(如果不变就保持原字段)字段类型(若不变就采用原来的字段)COMMENT'新的字段备注';Example:CREATEDATABASEIFNOTEXISTScurtisCOMMENT'笔
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(