package frequent;
import java.util.HashMap;
import java.util.Map;
public class Frequent_number {
//Find the most frequent integer in an array
public static void main(String[] args) {
int arr[]= {1,2,3,4,3,2,2,3,3};
System.out.println(getFrequent(arr));
System.out.println(getFrequentBySorting(arr));
}
//Using Map , TC: O(n) SC: O(n)
static public int getFrequent(int arr[]){
int ans=0;
Map<Integer,Integer> m = new HashMap<>();
for(int i:arr){
if(m.containsKey(i)){
m.put(i, m.get(i)+1);
}else{
m.put(i, 1);
}
}
int maxVal=0;
for(Integer in: m.keySet()){
if(m.get(in)>maxVal){
ans=in;
maxVal = m.get(in);
}
}
return ans;
}
//Sort the array and then find it TC: O(nlogn) SC: O(1)
public static int getFrequentBySorting(int arr[]){
int current=arr[0];
int ansCount=0;
int tempCount=0;
int ans=current;
for(int i:arr){
if(i==current){
tempCount++;
}
if(tempCount>ansCount){
ansCount=tempCount;
ans=i;
}
current=i;
}
return ans;
}
}
Я знаю, что это собирается казаться старомодным, но я не думаю, что большая часть использовании учебных руководств онлайн учит языки программирования или платформы. Они обычно дают Вам не больше, чем немного вкуса языка. Для реального изучения языка Вам нужен эквивалент "книги", и во многих случаях, это означает реальную мертво-древовидную книгу.
, Если Вы хотите изучить C, считайте K& R. Если Вы хотите изучить C++, считайте Stroustrup. Если Вы хотите изучить Lisp/схему, считайте SICP. И т.д.
, Если Вы не готовы потратить больше чем 30$ и несколько часов для изучения языка, Вы, вероятно, не собираетесь изучать его.
C#
C# к Точке Hanspeter MГ¶ssenbГ¶ck. На всего лишь 200 страницах он объясняет C# в удивительной глубине, фокусирующейся на базовых понятиях и кратких примерах, а не помахивании руки и снимках экрана Visual Studio.
Для получения дополнительной информации об определенных функциях языка, проверьте спецификация языка ECMA-334 C#.
Руководство по проектированию Платформы , книга Krzysztof Cwalina и Brad Abrams от Microsoft, обеспечивает дальнейшее понимание основных проектных решений позади библиотеки.NET.
defacto стандарт для изучения Grails является превосходным Начало работы с Grails Jason Rudolph. Можно дебатировать, является ли это учебным руководством онлайн или книгой, так как это может быть куплено, но доступно как бесплатная загрузка. Существуют более "реальные" опубликованные книги, и я рекомендую Начать Groovy и Grails.
Я знаю, что это - перекрестная рассылка от здесь ..., но, я думаю, что одна из лучших книг Java Параллелизм Java на практике Brian Goetz. Довольно усовершенствованная книга - но, это износится хорошо Вашему параллельному коду и разработке Java в целом.
Для Java я высоко рекомендую Базовый Java. Это - большой том (или два больших тома), но я нашел, что он одна из лучших ссылок на Java, который я считал.
Для J2EE у Вас есть очень всестороннее учебное руководство в: http://java.sun.com/javaee/5/docs/tutorial/doc/
Они все действительно хороши, записаны академия , и (некоторые) книги (неопубликованная книга oreilly - переведенный из французского языка, но никакие проблемы я нашел), например). У меня есть *'d мои любимые, которые помогли мне больше всего.
ocaml:
Haskell:
Для C++, я предлагаю Ускоренный C++ Koenig и Мычанием как начинающийся текст, хотя я не знаю, как это было бы для абсолютного новичка. Это фокусируется на использовании STL сразу же, который делает добивающимся цели очень легче.
Haskell:
Книга O'Reilly:
Мой любимый генерал, меньше академических учебных руководств онлайн:
Книги по Функциональному программированию с Haskell:
Эффективный Java - необходимость, но я рекомендую быть довольным Java сначала, чтобы полностью понять примеры.
Ruby
Я добавил бы книги программирования Bruce Eckel:
В целом, его страница "Books" ( http://mindview.net/Books/ ) является хорошим ресурсом. Свободно availabe книги может также быть найден в http://www.ibiblio.org/pub/docs/books/eckel/
Для Lisp и Схемы (черт, функциональное программирование в целом), существует немного вещей, которые обеспечивают более прочную основу, чем Маленький Интриган и Закаленный Интриган . Оба обеспечивают очень простое и интуитивное введение и в Схему и в функциональное программирование, которое оказывается намного более простым для новых студентов или людей, увлеченных своим хобби, чем любой из типичных объемов, которые стирают как представление нехудожественной литературы война & Мир .
, Как только они переместились вне серии Schemer, SICP и На Lisp являются оба фантастическим выбором.
проверьте раздел программирования Викиучебника
, Многие из них полностью формируются, и довольно многие больше усовершенствовали разделы (которые находятся в переменных состояниях завершения) на определенной функциональности.
также, w3 школы имеют большой php учебный и ссылочный раздел
их html и , разделы css хороши для ссылки также.
C++
первый хорош для новичков, и второй требует более усовершенствованного уровня в C++.
Краткая информация C Плюс, 5-й Выпуск - C заказывают, чтобы добраться, если Вы изучаете C без предшествующего опыта программирования. Это - мой любимый, поскольку я учился программировать из этой книги. Это имеет все качества новичок, которого должна иметь дружественная книга:
Давайте не забывать Главный Первый Java, который мог считать существенным первым шагом на этом языке или возможно шаге после учебных руководств онлайн Sun. Это является большим в целях схватывания языка кратко, при добавлении небольшого количества забавы, служении в качестве стартовой площадки для более всесторонних книг, уже упомянутых.
Sedgewick предлагает большой ряд на Алгоритмах, которые являются необходимой вещью, если Вы находите, что книги Knuth являются слишком всесторонними. Knuth в стороне, Sedgewick приносит серьезный подход к полю, и он предлагает свои книги в C, C++ и Java. Книги C++ могли использоваться backwardly на C, так как он не делает очень большое различие между этими двумя языками в его представлении.
Каждый раз, когда я работаю над C, , Справочник C:A, Harbison и Steele, идет со мной везде. Это кратко и эффективно будучи чрезвычайно полным созданием его бесценный (мне так или иначе).
Языки в стороне, и если этот поток должен стать дежурным для ссылок, в которых я думаю, что он возглавляет тот путь из-за количества стабильных вкладов, включайте Регулярные выражения Освоения по причинам, я думаю, что большинство из нас знает..., некоторые также сказали бы, что regex можно считать языком самостоятельно. Далее, его полноценность в огромном количестве языков делает его неоценимым.
Для хорошей ссылки выезда CL язык Common LISP Язык, 2-й Выпуск
Для Objective C:
программирование какао для MAC OSX - третий выпуск Aaron Hillegass, опубликованный Addison Wesley
программирование в Objective C, Stephen G Kochan,
Главный Первый Javascript является хорошим введением к JS для начала программистов - это творчески объясняет основные концепции программирования с помощью синтаксиса JS. Серия Head First основана на исследуемых методах для помощи Вам изучить и помнить новую информацию. Они сделали, чтобы Вы сделали много упражнений и загадок, которые могли бы казаться юными, но действительно помочь цементировать знание в Вашем мозгу.
Одно осуществление, которое я действительно любил, состояло в том после того, как они объяснили типы данных, они показывают изображение городской улицы и говорят, "маркируют все типы данных, которые можно найти в этом изображении". Таким образом, проблесковый огонь на автомобиле является булевской переменной, знак на хранилище является строкой, и адрес является числом. Это помогло мне получить идею того, как перевести реальную информацию в программу.
Основанный только на этой книге, я сказал бы, что серия Head First является отличным способом изучить что-то в первый раз , но подобный истории формат, который они имеют, сделал бы их трудными использовать в качестве ссылок.
Python: http://diveintopython.net/
JS: реинтродукция к JavaScript является введением в язык (не специфические особенности браузера) для программистов. Не знайте хорошее учебное руководство на JS в браузере.
Прекрасная идея между прочим!
Я рекомендация второго Kristopher K& R для C.
я нашел "Существенный Actionscript 2.0" книгой довольно полезный для кодирования AS (существует версия AS3 теперь, я верю).
я нашел, что наличие реальных книг для просматривания более полезно, чем ссылка онлайн в некоторых случаях. Едва ли уверенный, почему все же.
хм, я не знаю, сказал ли я, что материалы онлайн бесполезны, но я действительно соглашаюсь, что существует что-то о книгах. Возможно, они лучше записаны, или возможно это - действие раскошеливания на 50$, который делает Вас более склонными для изучения материала.
Так или иначе, я соглашаюсь, что книги должны быть частью этого вопроса. Если у кого-либо будут какие-либо предложения для книг для языков, то я отредактирую сообщение с лучшими предложениями.
Ссылка, которую Вы перечислили для Ruby, для Ruby on Rails. В то время как все еще рубиновый в глубине души, это - определенно не место для запуска для людей, желающих изучить Ruby.
Для учебных руководств Ruby, я предложил бы , Почему (Острое) Руководство к Ruby как большая начальная точка для кого-либо заинтересованного языком.
, Если бы Вы хотели бы войти в большее количество детали, я рекомендовал бы книгу , Программируя Ruby, который стал стандартом для всех вещей Ruby. Третий выпуск в настоящее время пишется, выделяя функции Ruby 1.9, таким образом, я удержал бы некоторое время, если кто-либо рассматривает покупку этой книги.
Для JavaScript:
Для PHP:
Для OO разрабатывают & программирование, шаблоны:
Для Рефакторинга:
Для SQL/MySQL:
Не могу поверить, что никто не упомянул Perl Best Practices . Также есть канал Twitter , который доставляет один PBP в день.
Я изучил Perl из Учебника Роберта по Perl , который я рекомендую, но он не обновлялся с 1999 года. новое рекомендуемое руководство - Steve's Perl Tutorial .
Для веб-разработки с Perl явным победителем является Catalyst , а Catalyst wiki является отправной точкой для обучение.
Для Python я хотел бы предложить 'Байт Python' .
Раскрытие: я - автор этой книги, но отзывы пользователей на основной странице и книге должны, надо надеяться, выступить за себя:)