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读取.parquet文件
Henrietta's NOTES
python pandas
提示:在MacOS和Jupyternotebook环境下的用法Device:MacOSPython:3.10.9Pandas:1.5.3Jupyternotebook问题描述直接用pandas中pd.read_parquet()即可,但是这个方法在和read_csv一样用之前需要先安装fastparquet活着pyarrow,方法如下:打开MacOS的终端,输入:pipinstallfastpar
C++ 使用 constexpr 、查表法、分治法加速位镜像翻转
代码//////@brief左右翻转位。//////@note翻转后,最低位位将变为最高位,最高位将变为最低位。//////templaterequires(std::is_same_v)constexprTReverse(Tvalue){int32_tbit_count=sizeof(T)*8;for(int32_ti=0;irequires(std::is_integral_v&&!std::
【日更挑战】2023-01-29比赛日NOTES
扁圆柱体
日更挑战当前排名:第651天,第649名,排名较昨日前进0名。比赛日,官网给出每场比赛的Notes(极个别场次没有),翻译如下Blues(2)vs.Avalanche(4)本场是雪崩全明星周末前的最后一场;Newhook成为雪崩/北方人队史上首位连续2个赛季在他的生日夜进球的球员;Binnington出场第200次(196次首发),蓝调队史上有200次以上出场纪录的门将,除了他之外,只有MikeL
sqoop从mysql导数据到hdfs,出现java.lang.ClassNotFoundException: Class QueryResult not found
无级程序员
大数据 sqoop mysql hdfs
运行sqoop从postgresql/mysql导入数据到hdfs,结果出现如下错误:2025-07-1816:59:13,624INFOorm.CompilationManager:HADOOP_MAPRED_HOMEis/opt/datasophon/hadoop-3.3.3Note:/opt/sqoop/bin/QueryResult.javausesoroverridesadeprecat
遥感云平台-GEE下载Landsat8/9影像数据(python)
内容介绍上期文章介绍如何在网页端导出Landsat8/9数据,本期主要介绍如何在本地GEE-python端导出数据以及出图。环境配置:Vscode+Jupyternotebook+gee+geemap+python3.10#导出所需要的包,注意提前安装ee和geemapimporteeimportosimportnumpyasnpimportgeemapfromgeemap.datasetsimp
clickhouse字符串函数
鸭梨山大哎
clickhouse clickhouse 字符串
长度以及大小写SELECT--11length('helloworld')asstr_length,--判断字符串是否为空,空为1,非空为0--0empty('helloworld'),--1notEmpty('helloworld'),--11lengthUTF8('helloworld'),--11char_length('helloworld'),--同lengthUTF8()--11cha
数字图像处理(三:图像如果当作矩阵,那加减乘除处理了矩阵,那图像咋变):从LED冬奥会、奥运会及春晚等等大屏,到手机小屏,快来挖一挖里面都有什么
数字图像处理(三)一、(准备工作:咋玩,用什么玩具)图像以矩阵形式存储,那矩阵一变、图像立刻跟着变?1.Python+JupyterNotebook/Lab+库(NumPy,OpenCV,Matplotlib,scikit-image)2.MATLAB+ImageProcessingToolbox3.JavaScript+HTML5Canvas+浏览器4.专业的图像处理软件(带脚本/插件功能)二、
VSCode使用Jupyter完整指南配置机器学习环境
z日火
校招学习日记 vscode jupyter 机器学习
接下来开始机器学习部分第一步配置环境:VSCode使用Jupyter完整指南1.安装必要的扩展打开VSCode,按Ctrl+Shift+X打开扩展市场,搜索并安装以下扩展:必装扩展:Python(Microsoft官方)-Python语言支持Jupyter(Microsoft官方)-Jupyternotebook支持Pylance(Microsoft官方)-Python智能提示和语法检查推荐扩展:
numpy教程
Jeffrey_Pacino
编程学习 numpy 数据分析
使用jupyternotebook分析数据之前导入的包importnumpyasnp#linearalgebraimportpandasaspd#dataprocessing,CSVfileI/O(e.g.pd.read_csv)%matplotlibinlineimportmatplotlib.pyplotasplt#Matlab-styleplottingimportseabornassns
2021.04.27总结
阿源的成长之路
感恩老爷子专门跑来一趟把送错的外卖还给我们碎念干什么?那尽量冥想吧,然后中途洗漱做事吧,面对人又有点抗拒但是也要往前走嘛。吃自助那天:还是有点胆怯,忙了一天多少有点焦虑,没调节,就来吃饭了,不管怎样,尽量当下觉知当下接受此时此刻我想起来了打坐就好还是决定封上手机,抓紧时间做事。写写阶段复盘然后把今晚计划写一下,然后尽快做事。关于有道云和onenote的结合又思考了很久,主要是在想,一些暂时无法归类
【643】smack-dab in the middle
心际花园
MeaningAveryobviousobjectorplacedirectlyinthemiddleofsomethingelseDialogWhyareyoucoveringyourface?Igotanewzit.Whocares!It’ssmack-dabinthemiddleofmynose!notezitZitsarespotsonsomeone'sskin,especiallyayo
Github 2024-06-07开源项目日报 Top10
根据GithubTrendings的统计,今日(2024-06-07统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目3C++项目3JavaScript项目2JupyterNotebook项目1TypeScript项目1Vue项目1比特币核心:开源比特币软件创建周期:4919天开发语言:C++协议类型:MITLicenseStar数量:76760个F
Python 代码生成 LaTeX 数学公式:latexify 示例 examples
文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。latexify示例本notebook提供了多个使用latexify的示例。更多细节请参阅官方文档。如有任何疑问,请在issuetracker中提出。安装latexify#运行下方示例前请先重启运行时。%pipinstalllatexify-pyCollectinglatexify-pyDownloadi
python环境安装jupyter
爱分享的胖头鱼
02.Python(基础知识) jupyter ide python python虚拟环境
安装完毕之后下一步可以参考:配置jupyter的启动路径-CSDN博客1前提条件:python环境系统:win10python:本地已经有python,可以查看本地的python版本:C:\Users\PC>python--versionPython3.8.102安装jupyter并启动安装jupyterC:\Users\PC>pipinstalljupyternotebookCollecting
初级程序员的复仇!硅谷科技圈技术大佬神作:之前说的vibe coding都是放屁!代理军团来了!2025年底手动编码就会消失!
jike007gt
科技 人工智能 大数据
文章指出,初级开发者更愿意接受并快速适应AI工具,而部分资深开发者则因对新技术的抵触而落后。即,在AI时代,灵活适应比经验更重要!这导致初级开发者在新技术环境中表现出更高的效率和适应性,成为企业在AI编程时代的重要资产。前天Claude4刷屏了,但不知道大家有没有注意到,Anthropic的老大,Dario,时不时就会在keynote中就会引用一篇文章:《RevengeoftheJuniorDev
写论文时遇到的问题及解决办法
小白的程序空间
论文格式技能汇总 经验分享 windows
问题1:利用endnote关于出现{},而不是[1].解决办法:找到WORD中的updateCitationsandBibliography,点击后,即可恢复[]。问题2:写论文时,endnote中常用的字体是什么?解决办法:ChineseStdGBT7714(numeric)问题3:如何在word中添加Endnote的字体?解决办法:在endnote中,找到“编辑”,“输出样式”,接着“打开样式
【day1】Python基础知识-pycharm版
m0_56051615
pycharm python ide
内容:IDLE介绍使用、建立python源文件、python程序格式(缩进和注释)、海龟绘图、对象的组成、栈内存和堆内存、标识符、变量安装PyCharm和AnacondaAnaconda是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。包含了conda、Python在内的超过180个科学包及其依赖项。其包含的科学包包括:numpy,pandas,ipythonnotebook等
玩转Docker | 使用Docker部署Mininote笔记工具
心随_风动
玩转Docker docker 笔记 容器
玩转Docker|使用Docker部署Mininote笔记工具前言一、Mininote介绍Mininote简介Mininote使用场景二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署Mininote服务下载镜像创建SSL自签名证书创建容器创建容器检查容器状态检查服务端口安全设置四、访问Mininote服务访问Mininote首页设置访问密码五、基本使用新建笔记六、实践总结前
关于字符编辑器vi、vim版本的安装过程及其常用命令:
DIY机器人工房
编辑器 vim linux 嵌入式硬件 DIY机器人工房 stm32 单片机
1.编辑器1.1图形编辑器平时常见的编辑器都是图形编辑器,比如记事本、notepad、office、wps等,图形编辑器的意思就是这些编辑器带有图形界面,有菜单选项。比如最简单的Windows的记事本:记事本当然,编程时不可能使用记事本来写代码,常用的专业编程IDE有vsCode、qtCreator等,常用的专业编辑器有sumlime、notepad++、vim等,它们各有所长。其中,在嵌入式开发
《How to Take Smart Notes》读书笔记1
LY320
最近在读一本书,题为《HowtoTakeSmartNotes:OneSimpleTechniquetoBoostWriting,LearningandThinking–forStudents,AcademicsandNonfictionBookWriters》1。尚未读完,分享一些读这本书的感想,我的一些心得,和不解。这本书让我觉得最有收获的点是更新了我对记录和整理笔记的认识。通常我们在记录笔记时
WIFI7新特性浅析及Linux内核对其的支持
winter91
Linux NetWork linux WIFI
WIFI7新特性浅析及Linux内核对其的支持|DD'NotesWIFI7新特性浅析及Linux内核对其的支持wifi7新特性Wi-Fi7(IEEE802.11be)作为下一代无线网络标准,在速度、延迟、容量和稳定性等方面实现了显著提升。以下是其核心新特性:1.更高带宽与速率320MHz信道带宽支持连续320MHz或非连续160+160MHz带宽(6GHz频段),相比WiFi6的160MHz实现速
「DR」沉渊/柳瑱
箫凌
站在黑暗的深处靠近光明的边缘刻铸最细腻的温情全世界只有不到3%的人微信搜索并且关注了箫凌你真是个特别的人策划:箫凌「fromOvertureStudio/角一文化」姓名:柳瑱生日:1993年12月4日星座:射手座Overture工作室/角一文化签约原创创作者作品:沉渊文案:柳瑱「fromOvertureStudio/角一文化」NOTE:其实我真不知道所谓创作构思要怎么写,那就罗列一些关于这个主题的
Cool Pi CM5-LAPTOP Linux Quick Start Guide
george-coolpi
linux 运维 服务器 开源 arm开发 AI编程
MachineIntroductionCOOLPICM5open-sourcenotebookisaproductthatcombineshighperformance,portability,andopen-sourcespirit.Itnotonlymeetsthebasiccomputingneedsofusers,butalsoprovidesanidealplatformforthose
玩转Docker | 使用Docker部署NotepadMX笔记应用程序
心随_风动
玩转Docker docker 笔记 eureka
玩转Docker|使用Docker部署NotepadMX笔记应用程序前言一、NotepadMX介绍工具简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署NotepadMX服务下载NotepadMX镜像编辑部署文件创建容器检查容器状态检查服务端口安全设置四、访问NotepadMX服务访问NotepadMX首页设置访问验证编辑笔记总结前言在如今快节奏的工作与学习中,一
K3s-io/kine项目核心架构与数据流解析
富珂祯
K3s-io/kine项目核心架构与数据流解析kineRunKubernetesonMySQL,Postgres,sqlite,dqlite,notetcd.项目地址:https://gitcode.com/gh_mirrors/ki/kine项目概述K3s-io/kine是一个创新的存储适配器,它在传统SQL数据库之上实现了轻量级的键值存储功能。该项目最显著的特点是采用单一数据表结构,通过巧妙的
深入解析Golang中的defer机制:从cch123/golang-notes看实现原理
深入解析Golang中的defer机制:从cch123/golang-notes看实现原理golang-notesGosourcecodeanalysis(zh-cn)项目地址:https://gitcode.com/gh_mirrors/go/golang-notes前言在Go语言中,defer语句是一种非常实用的特性,它允许我们在函数返回前执行某些操作。本文将基于cch123/golang-n
JAX study notes[16]
文章目录PytreesreferencesPytreesinessence,JAXfunctionandtransformactonarrays,actuallymostopeartionhandlingarraysbaseonthecollectionofarrays.JAXusethePytreewhichisanabstractobjecttocontrolalotofcollections
React 中使用 ECharts 报错 "series not exists"
问题现象在React项目中使用ECharts时,控制台报错:seriesnotexists.Legenddatashouldbesamewithseriesnameordataname但已确认legend.data与series.name完全匹配,代码逻辑看似正确。问题根源未正确注册ECharts图表组件。自ECharts5起,官方采用按需引入(tree-shaking)的模块化设计,需显式注册图
【Note】Linux Kernel 主题学习之“完整的嵌入式 Linux 环境、构建工具、编译工具链、CPU 架构”
CodeWithMe
读书笔记 linux linux 学习 架构
LinuxKernel主题学习之“完整的嵌入式Linux环境、构建工具、编译工具链、CPU架构”一、完整的嵌入式Linux环境一个嵌入式Linux系统通常包括以下关键组件(以Jetson、树莓派等ARM版SBC为例):交叉编译工具链(crosstoolchain):生成目标CPU可执行代码,如aarch64-linux-gnu-gcc+glibc/musl/uClibc。Bootloader:如U
【Note】《深入理解Linux内核》Chapter 16 :深入理解 Linux 文件访问机制
CodeWithMe
读书笔记 linux linux 运维 服务器
《深入理解Linux内核》Chapter16:深入理解Linux文件访问机制关键词:VFS、文件描述符、structfile、structinode、open、read、write、close、dentry、权限校验、file_operations、O_NOATIME、权限继承一、概览:Linux文件访问路径在Linux中,几乎一切资源都可以通过“文件”的形式访问。文件访问不仅涵盖传统的磁盘文件,
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(